From 70f63cc91a05a4f73a4bc3f3f314deb11ededb5c Mon Sep 17 00:00:00 2001 From: Richard Frith-MacDonald Date: Wed, 2 Nov 2011 15:46:02 +0000 Subject: [PATCH] fix alignment error git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34108 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 5 +++++ Source/NSNumber.m | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) 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];