mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-23 12:00:52 +00:00
Fix core dump from lst commit. Sorry!
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@25726 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
5966ffcd3f
commit
f9bcb8cc27
2 changed files with 23 additions and 9 deletions
|
@ -1,3 +1,8 @@
|
|||
2007-12-12 Fred Kiefer <FredKiefer@gmx.de>
|
||||
|
||||
* Source/NSKeyValueBinding.m (GSBindingUnbindAll): Return if table
|
||||
doesn't exist.
|
||||
|
||||
2007-12-11 Fred Kiefer <FredKiefer@gmx.de>
|
||||
|
||||
* Headers/AppKit/NSKeyValueBinding.h,
|
||||
|
|
|
@ -298,11 +298,14 @@ void GSBindingReleaseLock()
|
|||
[bindingLock unlock];
|
||||
}
|
||||
|
||||
NSMutableDictionary * GSBindingListForObject(id object)
|
||||
NSMutableDictionary *GSBindingListForObject(id object)
|
||||
{
|
||||
NSMutableDictionary * list;
|
||||
NSMutableDictionary *list;
|
||||
|
||||
list = (NSMutableDictionary *) NSMapGet(objectTable, (void *)object);
|
||||
if (!objectTable)
|
||||
return nil;
|
||||
|
||||
list = (NSMutableDictionary *)NSMapGet(objectTable, (void *)object);
|
||||
if (list == nil)
|
||||
{
|
||||
list = [NSMutableDictionary dictionary];
|
||||
|
@ -315,16 +318,22 @@ void GSBindingUnbindAll(id object)
|
|||
{
|
||||
NSEnumerator *enumerator;
|
||||
NSString *binding;
|
||||
NSArray *bindings;
|
||||
NSDictionary *list;
|
||||
|
||||
if (!objectTable)
|
||||
return;
|
||||
|
||||
[bindingLock lock];
|
||||
bindings = [(GSBindingListForObject(object)) allKeys];
|
||||
enumerator = [bindings objectEnumerator];
|
||||
while ((binding = [enumerator nextObject]))
|
||||
list = (NSDictionary *)NSMapGet(objectTable, (void *)object);
|
||||
if (list != nil)
|
||||
{
|
||||
[object unbind: binding];
|
||||
enumerator = [list keyEnumerator];
|
||||
while ((binding = [enumerator nextObject]))
|
||||
{
|
||||
[object unbind: binding];
|
||||
}
|
||||
NSMapRemove(objectTable, (void *)object);
|
||||
}
|
||||
NSMapRemove(objectTable, (void *)object);
|
||||
[bindingLock unlock];
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue