git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@37551 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
rfm 2014-01-07 10:41:49 +00:00
parent 7a55fc9773
commit 54c7ddf7ee
2 changed files with 9 additions and 3 deletions

View file

@ -1,3 +1,9 @@
2014-01-07 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSObject.m: Fixed logic error in David's libobjc2 integration
for deallocation; should use object_getClass() if the object is NOT a
small object, use isa otherwise.
2013-12-31 Marcus Mueller <znek@mulle-kybernetik.com> 2013-12-31 Marcus Mueller <znek@mulle-kybernetik.com>
* Headers/Foundation/NSMetadata.h: use GS_PROTOCOLS_HAVE_OPTIONAL for * Headers/Foundation/NSMetadata.h: use GS_PROTOCOLS_HAVE_OPTIONAL for

View file

@ -1420,11 +1420,11 @@ static id gs_weak_load(id obj)
#ifdef OBJC_SMALL_OBJECT_MASK #ifdef OBJC_SMALL_OBJECT_MASK
if (((NSUInteger)self & OBJC_SMALL_OBJECT_MASK) == 0) if (((NSUInteger)self & OBJC_SMALL_OBJECT_MASK) == 0)
{ {
destructorClass = object_getClass(self); destructorClass = isa; // Potentially hidden class
} }
else else
{ {
destructorClass = isa; destructorClass = object_getClass(self); // Small object
} }
#else #else
destructorClass = isa; destructorClass = isa;
@ -1450,7 +1450,7 @@ static id gs_weak_load(id obj)
destructorClass = class_getSuperclass(destructorClass); destructorClass = class_getSuperclass(destructorClass);
if (newDestructor != destructor) if (newDestructor != destructor)
{ {
newDestructor(self, cxx_destruct); newDestructor(self, cxx_destruct);
destructor = newDestructor; destructor = newDestructor;
} }