mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-25 06:41:12 +00:00
Small bug fixes for NSKeyValueBinding
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@28367 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
0f6d7e890d
commit
8ed4d5e90e
2 changed files with 15 additions and 6 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2009-06-22 Fred Kiefer <FredKiefer@gmx.de>
|
||||||
|
|
||||||
|
* Source/NSKeyValueBinding.m (GSKeyValueBinding+initialize):
|
||||||
|
Correc the setup of the map tables.
|
||||||
|
* Source/NSKeyValueBinding.m (GSKeyValueBinding+unbindAllForObject):
|
||||||
|
Use a copy of the keys for the enumerator.
|
||||||
|
|
||||||
2009-06-05 18:21-EDT Gregory John Casamento <greg.casamento@gmail.com>
|
2009-06-05 18:21-EDT Gregory John Casamento <greg.casamento@gmail.com>
|
||||||
|
|
||||||
* Headers/AppKit/NSSpeechSynthesizer.h:
|
* Headers/AppKit/NSSpeechSynthesizer.h:
|
||||||
|
|
|
@ -141,9 +141,9 @@ void GSBindingInvokeAction(NSString *targetKey, NSString *argumentKey,
|
||||||
{
|
{
|
||||||
bindingLock = [GSLazyRecursiveLock new];
|
bindingLock = [GSLazyRecursiveLock new];
|
||||||
classTable = NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks,
|
classTable = NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks,
|
||||||
NSOwnedPointerMapValueCallBacks, 128);
|
NSObjectMapValueCallBacks, 128);
|
||||||
objectTable = NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks,
|
objectTable = NSCreateMapTable(NSNonRetainedObjectMapKeyCallBacks,
|
||||||
NSOwnedPointerMapValueCallBacks, 128);
|
NSObjectMapValueCallBacks, 128);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,9 +155,9 @@ void GSBindingInvokeAction(NSString *targetKey, NSString *argumentKey,
|
||||||
bindings = (NSMutableArray *)NSMapGet(classTable, (void*)clazz);
|
bindings = (NSMutableArray *)NSMapGet(classTable, (void*)clazz);
|
||||||
if (bindings == nil)
|
if (bindings == nil)
|
||||||
{
|
{
|
||||||
// Need to retain it ourselves
|
|
||||||
bindings = [[NSMutableArray alloc] initWithCapacity: 5];
|
bindings = [[NSMutableArray alloc] initWithCapacity: 5];
|
||||||
NSMapInsert(classTable, (void*)clazz, (void*)bindings);
|
NSMapInsert(classTable, (void*)clazz, (void*)bindings);
|
||||||
|
RELEASE(bindings);
|
||||||
}
|
}
|
||||||
[bindings addObject: binding];
|
[bindings addObject: binding];
|
||||||
[bindingLock unlock];
|
[bindingLock unlock];
|
||||||
|
@ -249,13 +249,14 @@ void GSBindingInvokeAction(NSString *targetKey, NSString *argumentKey,
|
||||||
list = (NSDictionary *)NSMapGet(objectTable, (void *)anObject);
|
list = (NSDictionary *)NSMapGet(objectTable, (void *)anObject);
|
||||||
if (list != nil)
|
if (list != nil)
|
||||||
{
|
{
|
||||||
enumerator = [list keyEnumerator];
|
NSArray *keys = [list allKeys];
|
||||||
|
|
||||||
|
enumerator = [keys objectEnumerator];
|
||||||
while ((binding = [enumerator nextObject]))
|
while ((binding = [enumerator nextObject]))
|
||||||
{
|
{
|
||||||
[anObject unbind: binding];
|
[anObject unbind: binding];
|
||||||
}
|
}
|
||||||
NSMapRemove(objectTable, (void *)anObject);
|
NSMapRemove(objectTable, (void *)anObject);
|
||||||
RELEASE(list);
|
|
||||||
}
|
}
|
||||||
[bindingLock unlock];
|
[bindingLock unlock];
|
||||||
}
|
}
|
||||||
|
@ -297,6 +298,7 @@ void GSBindingInvokeAction(NSString *targetKey, NSString *argumentKey,
|
||||||
{
|
{
|
||||||
bindings = [NSMutableDictionary new];
|
bindings = [NSMutableDictionary new];
|
||||||
NSMapInsert(objectTable, (void*)source, (void*)bindings);
|
NSMapInsert(objectTable, (void*)source, (void*)bindings);
|
||||||
|
RELEASE(bindings);
|
||||||
}
|
}
|
||||||
[bindings setObject: self forKey: name];
|
[bindings setObject: self forKey: name];
|
||||||
[bindingLock unlock];
|
[bindingLock unlock];
|
||||||
|
|
Loading…
Reference in a new issue