diff options
Diffstat (limited to 'Modules/structmodule.c')
| -rw-r--r-- | Modules/structmodule.c | 12 | 
1 files changed, 8 insertions, 4 deletions
diff --git a/Modules/structmodule.c b/Modules/structmodule.c index 7d8815e260..a0ecb675d0 100644 --- a/Modules/structmodule.c +++ b/Modules/structmodule.c @@ -1,6 +1,6 @@  /*********************************************************** -Copyright 1991, 1992, 1993, 1994 by Stichting Mathematisch Centrum, -Amsterdam, The Netherlands. +Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam, +The Netherlands.                          All Rights Reserved @@ -290,7 +290,7 @@ struct_pack(self, args)  					res += sizeof(float);  					break;  				case 'd': -					*(double*)res = fval; +					memcpy(res, (char*)&fval, sizeof fval);  					res += sizeof(double);  					break;  				} @@ -415,9 +415,13 @@ struct_unpack(self, args)  				break;  			case 'd': -				v = newfloatobject(*(double*)str); +			    { +				double d; +				memcpy((char *)&d, str, sizeof d); +				v = newfloatobject(d);  				str += sizeof(double);  				break; +			    }  			default:  				err_setstr(StructError, "bad char in fmt");  | 
