From d4234288d511c46d0afaf1b5a1a1eec508801db4 Mon Sep 17 00:00:00 2001 From: Richard Frith-MacDonald Date: Wed, 22 Jul 2015 08:26:30 +0000 Subject: [PATCH] Fix for nonfragile-abi git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38825 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 6 ++++++ Source/NSConcreteHashTable.m | 5 ++++- Source/NSConcreteMapTable.m | 5 ++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2839b1b31..eaa6160a2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2015-07-22 Richard Frith-Macdonald + + * Source/NSConcreteHashTable.m: + * Source/NSConcreteMapTable.m: + Get instance size at run time, so we can compile using nonfragile-abi + 2015-07-16 Niels Grewe * Source/GSSet.m diff --git a/Source/NSConcreteHashTable.m b/Source/NSConcreteHashTable.m index d4f5eb6f6..74fd9f4e7 100644 --- a/Source/NSConcreteHashTable.m +++ b/Source/NSConcreteHashTable.m @@ -827,11 +827,14 @@ const NSHashTableCallBacks NSPointerToStructHashCallBacks = @implementation NSConcreteHashTable +static unsigned instanceSize = 0; + + (void) initialize { if (concreteClass == Nil) { concreteClass = [NSConcreteHashTable class]; + instanceSize = class_getInstanceSize(concreteClass); } #if GS_WITH_GC /* We create a typed memory descriptor for hash nodes. @@ -1084,7 +1087,7 @@ const NSHashTableCallBacks NSPointerToStructHashCallBacks = * } * GSIMapEndEnumerator(&enumerator); */ - size += GSIMapSize(self) - sizeof(GSI_MAP_TABLE_T); + size += GSIMapSize(self) - instanceSize; } return size; } diff --git a/Source/NSConcreteMapTable.m b/Source/NSConcreteMapTable.m index d44680f26..3feb37358 100644 --- a/Source/NSConcreteMapTable.m +++ b/Source/NSConcreteMapTable.m @@ -1185,11 +1185,14 @@ const NSMapTableValueCallBacks NSOwnedPointerMapValueCallBacks = @implementation NSConcreteMapTable +static unsigned instanceSize = 0; + + (void) initialize { if (concreteClass == Nil) { concreteClass = [NSConcreteMapTable class]; + instanceSize = class_getInstanceSize(concreteClass); } #if GS_WITH_GC /* We create a typed memory descriptor for map nodes. @@ -1450,7 +1453,7 @@ const NSMapTableValueCallBacks NSOwnedPointerMapValueCallBacks = * } * GSIMapEndEnumerator(&enumerator); */ - size += GSIMapSize(self) - sizeof(GSI_MAP_TABLE_T); + size += GSIMapSize(self) - instanceSize; } return size; }