mirror of
https://github.com/gnustep/apps-gorm.git
synced 2025-02-24 12:01:16 +00:00
Retain object names in map
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/gorm/trunk@8452 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
6b13481413
commit
4822b3f236
1 changed files with 17 additions and 1 deletions
|
@ -242,10 +242,13 @@ static NSImage *classesImage = nil;
|
||||||
/*
|
/*
|
||||||
* Remove objects and connections that shouldn't be archived.
|
* Remove objects and connections that shouldn't be archived.
|
||||||
*/
|
*/
|
||||||
|
NSMapRemove(objToName, (void*)[nameTable objectForKey: @"NSOwner"]);
|
||||||
[nameTable removeObjectForKey: @"NSOwner"];
|
[nameTable removeObjectForKey: @"NSOwner"];
|
||||||
|
NSMapRemove(objToName, (void*)[nameTable objectForKey: @"NSFirst"]);
|
||||||
[nameTable removeObjectForKey: @"NSFirst"];
|
[nameTable removeObjectForKey: @"NSFirst"];
|
||||||
if (fontManager != nil)
|
if (fontManager != nil)
|
||||||
{
|
{
|
||||||
|
NSMapRemove(objToName, (void*)[nameTable objectForKey: @"NSFont"]);
|
||||||
[nameTable removeObjectForKey: @"NSFont"];
|
[nameTable removeObjectForKey: @"NSFont"];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -542,11 +545,17 @@ static NSImage *classesImage = nil;
|
||||||
/*
|
/*
|
||||||
* Restore removed objects.
|
* Restore removed objects.
|
||||||
*/
|
*/
|
||||||
|
NSMapRemove(objToName, (void*)[nameTable objectForKey: @"NSOwner"]);
|
||||||
[nameTable setObject: filesOwner forKey: @"NSOwner"];
|
[nameTable setObject: filesOwner forKey: @"NSOwner"];
|
||||||
|
NSMapInsert(objToName, (void*)filesOwner, (void*)@"NSOwner");
|
||||||
|
NSMapRemove(objToName, (void*)[nameTable objectForKey: @"NSFirst"]);
|
||||||
[nameTable setObject: firstResponder forKey: @"NSFirst"];
|
[nameTable setObject: firstResponder forKey: @"NSFirst"];
|
||||||
|
NSMapInsert(objToName, (void*)firstResponder, (void*)@"NSFirst");
|
||||||
if (fontManager != nil)
|
if (fontManager != nil)
|
||||||
{
|
{
|
||||||
|
NSMapRemove(objToName, (void*)[nameTable objectForKey: @"NSFont"]);
|
||||||
[nameTable setObject: fontManager forKey: @"NSFont"];
|
[nameTable setObject: fontManager forKey: @"NSFont"];
|
||||||
|
NSMapInsert(objToName, (void*)fontManager, (void*)@"NSFont");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -711,8 +720,12 @@ static NSImage *classesImage = nil;
|
||||||
NSButtonCell *cell;
|
NSButtonCell *cell;
|
||||||
unsigned style;
|
unsigned style;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* NB. We must retain the map values (object names) as the nameTable
|
||||||
|
* may not hold identical name objects, but merely equal strings.
|
||||||
|
*/
|
||||||
objToName = NSCreateMapTableWithZone(NSNonRetainedObjectMapKeyCallBacks,
|
objToName = NSCreateMapTableWithZone(NSNonRetainedObjectMapKeyCallBacks,
|
||||||
NSNonRetainedObjectMapValueCallBacks, 128, [self zone]);
|
NSObjectMapValueCallBacks, 128, [self zone]);
|
||||||
|
|
||||||
savedEditors = [NSMutableArray new];
|
savedEditors = [NSMutableArray new];
|
||||||
|
|
||||||
|
@ -914,6 +927,7 @@ static NSImage *classesImage = nil;
|
||||||
*/
|
*/
|
||||||
[[c nameTable] setObject: filesOwner forKey: @"NSOwner"];
|
[[c nameTable] setObject: filesOwner forKey: @"NSOwner"];
|
||||||
[[c nameTable] setObject: firstResponder forKey: @"NSFirst"];
|
[[c nameTable] setObject: firstResponder forKey: @"NSFirst"];
|
||||||
|
|
||||||
nt = [c nameTable];
|
nt = [c nameTable];
|
||||||
enumerator = [[c connections] objectEnumerator];
|
enumerator = [[c connections] objectEnumerator];
|
||||||
while ((con = [enumerator nextObject]) != nil)
|
while ((con = [enumerator nextObject]) != nil)
|
||||||
|
@ -1265,8 +1279,10 @@ static NSImage *classesImage = nil;
|
||||||
NSMapRemove(objToName, (void*)object);
|
NSMapRemove(objToName, (void*)object);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
aName = [aName copy]; /* Make sure it's immutable */
|
||||||
[nameTable setObject: object forKey: aName];
|
[nameTable setObject: object forKey: aName];
|
||||||
NSMapInsert(objToName, (void*)object, (void*)aName);
|
NSMapInsert(objToName, (void*)object, (void*)aName);
|
||||||
|
RELEASE(aName);
|
||||||
if (oldName != nil)
|
if (oldName != nil)
|
||||||
{
|
{
|
||||||
[nameTable removeObjectForKey: oldName];
|
[nameTable removeObjectForKey: oldName];
|
||||||
|
|
Loading…
Reference in a new issue