From 53b5f5405caa035906a77cac90c60b4fb43eaa1c Mon Sep 17 00:00:00 2001 From: rfm Date: Mon, 20 Jun 2011 04:37:20 +0000 Subject: [PATCH] fix a couple of leak detection bugs git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33353 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 6 ++++++ Source/NSObject.m | 1 - Source/NSUserDefaults.m | 7 +++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 982e2c5a0..8f16b8d53 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2011-06-20 Richard Frith-Macdonald + + * Source/NSObject.m: Keep zombie working until after atext stuff has + run. + * Source/NSUserDefaults.m: fix possible deref of nul pointer. + 2011-06-19 Richard Frith-Macdonald * Headers/GNUstepBase/NSObject+GNUstepBase.h: diff --git a/Source/NSObject.m b/Source/NSObject.m index 10dfce7a4..29c61ddbd 100644 --- a/Source/NSObject.m +++ b/Source/NSObject.m @@ -1129,7 +1129,6 @@ objc_create_block_classes_as_subclasses_of(Class super); NSDeallocateZombies = GSPrivateEnvironmentFlag("NSDeallocateZombies", NO); zombieMap = NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks, NSNonOwnedPointerMapValueCallBacks, 0); - [[NSObject leakAt: (id*)&zombieMap] release]; /* We need to cache the zombie class. * We can't call +class because NSZombie doesn't have that method. diff --git a/Source/NSUserDefaults.m b/Source/NSUserDefaults.m index ad8faa895..c52f6779c 100644 --- a/Source/NSUserDefaults.m +++ b/Source/NSUserDefaults.m @@ -788,8 +788,11 @@ newLanguages(NSArray *oldNames) } NS_HANDLER { - [defs->_lock unlock]; - [defs release]; + if (nil != defs) + { + [defs->_lock unlock]; + [defs release]; + } [localException raise]; } NS_ENDHANDLER