make subclassing easier

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29907 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
rfm 2010-03-12 09:14:39 +00:00
parent d0cf9c0c19
commit 31dcbb6a0b
2 changed files with 16 additions and 4 deletions

View file

@ -345,7 +345,7 @@ static NSMapTable *globalClassMap = 0;
- (Class) classForClassName: (NSString*)aString
{
return (Class)NSMapGet(_clsMap, (void*)aString);
return _clsMap == 0 ? Nil : (Class)NSMapGet(_clsMap, (void*)aString);
}
- (BOOL) containsValueForKey: (NSString*)aKey
@ -806,8 +806,6 @@ static NSMapTable *globalClassMap = 0;
_objects = [_archive objectForKey: @"$objects"];
_keyMap = [_archive objectForKey: @"$top"];
_clsMap = NSCreateMapTable(NSObjectMapKeyCallBacks,
NSNonOwnedPointerMapValueCallBacks, 0);
#if GS_WITH_GC
_objMap = NSAllocateCollectable(sizeof(GSIArray_t), NSScannedOption);
#else
@ -831,10 +829,18 @@ static NSMapTable *globalClassMap = 0;
{
if (aString == nil)
{
NSMapRemove(_clsMap, (void*)aString);
if (_clsMap != 0)
{
NSMapRemove(_clsMap, (void*)aString);
}
}
else
{
if (_clsMap == 0)
{
_clsMap = NSCreateMapTable(NSObjectMapKeyCallBacks,
NSNonOwnedPointerMapValueCallBacks, 0);
}
NSMapInsert(_clsMap, (void*)aString, (void*)aClass);
}
}