diff --git a/Source/NSObject.m b/Source/NSObject.m index 1fa4b1d64..5cb5127fe 100644 --- a/Source/NSObject.m +++ b/Source/NSObject.m @@ -1436,12 +1436,13 @@ static id gs_weak_load(id obj) newDestructor = class_getMethodImplementation(destructorClass, cxx_destruct); + destructorClass = class_getSuperclass(destructorClass); + if (newDestructor != destructor) - { + { newDestructor(self, cxx_destruct); destructor = newDestructor; } - destructorClass = class_getSuperclass(destructorClass); } return; }