diff --git a/ChangeLog b/ChangeLog index d2337d1ca..4c5f7e695 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-11-02 Richard Frith-Macdonald + + * Source/NSNumber.m: Fix alignment error when encoding/decoding ... + buffer must be aligned so that any datatype can go in it. + 2011-11-01 Richard Frith-Macdonald * Source/GSString.m: Partial restructuring suggested by Fred, plus diff --git a/Source/NSNumber.m b/Source/NSNumber.m index 88b21af94..0fb0c677d 100644 --- a/Source/NSNumber.m +++ b/Source/NSNumber.m @@ -771,7 +771,7 @@ if (aValue >= -1 && aValue <= 12)\ - (void) encodeWithCoder: (NSCoder *) coder { const char *type = [self objCType]; - char buffer[16]; + char buffer[16] __attribute__ ((aligned (16))); [coder encodeValueOfObjCType: @encode (char) at: type]; /* The most we currently store in an NSNumber is 8 bytes (double or long @@ -792,7 +792,7 @@ if (aValue >= -1 && aValue <= 12)\ - (id) initWithCoder: (NSCoder *) coder { char type[2] = { 0 }; - char buffer[16]; + char buffer[16] __attribute__ ((aligned (16))); [coder decodeValueOfObjCType: @encode (char) at: type]; [coder decodeValueOfObjCType: type at: buffer];