mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-21 12:41:19 +00:00
KVO tweaks
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32443 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
e0a2640d15
commit
6afda2b67a
3 changed files with 24 additions and 13 deletions
|
@ -77,19 +77,25 @@ static NSMapTable *dependentKeyTable;
|
|||
static Class baseClass;
|
||||
static id null;
|
||||
|
||||
static inline void setup()
|
||||
static inline void
|
||||
setup()
|
||||
{
|
||||
if (kvoLock == nil)
|
||||
if (nil == kvoLock)
|
||||
{
|
||||
kvoLock = [GSLazyRecursiveLock new];
|
||||
null = [[NSNull null] retain];
|
||||
classTable = NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks,
|
||||
NSNonOwnedPointerMapValueCallBacks, 128);
|
||||
infoTable = NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks,
|
||||
NSNonOwnedPointerMapValueCallBacks, 1024);
|
||||
dependentKeyTable = NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks,
|
||||
NSOwnedPointerMapValueCallBacks, 128);
|
||||
baseClass = NSClassFromString(@"GSKVOBase");
|
||||
[gnustep_global_lock lock];
|
||||
if (nil == kvoLock)
|
||||
{
|
||||
kvoLock = [GSLazyRecursiveLock new];
|
||||
null = [[NSNull null] retain];
|
||||
classTable = NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks,
|
||||
NSNonOwnedPointerMapValueCallBacks, 128);
|
||||
infoTable = NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks,
|
||||
NSNonOwnedPointerMapValueCallBacks, 1024);
|
||||
dependentKeyTable = NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks,
|
||||
NSOwnedPointerMapValueCallBacks, 128);
|
||||
baseClass = NSClassFromString(@"GSKVOBase");
|
||||
}
|
||||
[gnustep_global_lock unlock];
|
||||
}
|
||||
}
|
||||
/*
|
||||
|
@ -373,7 +379,6 @@ replacementForClass(Class c)
|
|||
GSKVOReplacement *r;
|
||||
|
||||
setup();
|
||||
|
||||
[kvoLock lock];
|
||||
r = (GSKVOReplacement*)NSMapGet(classTable, (void*)c);
|
||||
if (r == nil)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue