Performance improvements.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@4215 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-MacDonald 1999-05-06 19:37:45 +00:00
parent d7c8fa0305
commit 1dbd6cc410
8 changed files with 196 additions and 178 deletions

View file

@ -1,3 +1,14 @@
Thu May 6 21:00:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
* Source/NSUnarchiver.m: Don't retain/release unless necessary.
* Source/NSUserDefaults.m: ditto
* Source/NSNotification.m: ditto
* Source/NSFileManager.m: ditto
* Source/NSBundle.m: ditto
* Source/NSRunLoop.m: ditto
* Source/NSAutoreleasePool.m: Bugfix in dealloc - would leave count
of retained objects set high - caused deallocs of nil objects.
Thu May 6 17:06:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
* Source/NSString.m: Minor optimisations - use ([-allocWithZone:])

View file

@ -153,7 +153,8 @@ static IMP initImp;
struct autorelease_thread_vars *tv = ARP_THREAD_VARS;
_parent = tv->current_pool;
_child = nil;
[tv->current_pool _setChildPool: self];
if (_parent)
[_parent _setChildPool: self];
tv->current_pool = self;
}
@ -225,6 +226,7 @@ static IMP initImp;
{
NSAutoreleasePool *pool = ARP_THREAD_VARS->current_pool;
NSAssert(anObj, NSInvalidArgumentException);
if (pool)
[pool addObject: anObj];
else
@ -242,6 +244,7 @@ static IMP initImp;
- (void) addObject: anObj
{
NSAssert(anObj, NSInvalidArgumentException);
/* If the global, static variable AUTORELEASE_ENABLED is not set,
do nothing, just return. */
if (!autorelease_enabled)
@ -342,8 +345,10 @@ static IMP initImp;
@"to check for release errors."];
#endif
released->objects[i] = nil;
NSAssert(anObject, NSInternalInconsistencyException);
[anObject release];
}
released->count = 0;
released = released->next;
}
}

View file

@ -482,11 +482,17 @@ _bundle_load_callback(Class theClass, Category *theCategory)
- (void) dealloc
{
NSMapRemove(_bundles, _path);
RELEASE(_bundleClasses);
RELEASE(_infoDict);
RELEASE(_localizations);
RELEASE(_path);
if (_path)
{
NSMapRemove(_bundles, _path);
RELEASE(_path);
}
if (_bundleClasses)
RELEASE(_bundleClasses);
if (_infoDict)
RELEASE(_infoDict);
if (_localizations)
RELEASE(_localizations);
[super dealloc];
}

View file

@ -1259,9 +1259,11 @@ static NSFileManager* defaultManager = nil;
RELEASE(pathStack);
RELEASE(enumStack);
RELEASE(currentFileName);
RELEASE(currentFilePath);
RELEASE(topPath);
if (currentFileName)
RELEASE(currentFileName);
if (currentFilePath)
RELEASE(currentFilePath);
[super dealloc];
}

View file

@ -33,17 +33,19 @@
userInfo: info
{
[super init];
_name = [name copy];
_object = [object retain];
_info = [info retain];
_name = [name copyWithZone: NSDefaultMallocZone()];
_object = (object != nil) ? RETAIN(object) : nil;
_info = (info != nil) ? RETAIN(info) : nil;
return self;
}
- (void) dealloc
{
[_name release];
[_object release];
[_info release];
RELEASE(_name);
if (_object)
RELEASE(_object);
if (_info)
RELEASE(_info);
[super dealloc];
}
@ -54,18 +56,14 @@
object: object
userInfo: info
{
return [[[self alloc] initWithName: name
object: object
userInfo: info]
autorelease];
return [[[self allocWithZone: NSDefaultMallocZone()] initWithName: name
object: object userInfo: info] autorelease];
}
+ notificationWithName: (NSString*)name
object: object
{
return [self notificationWithName: name
object: object
userInfo: nil];
return [self notificationWithName: name object: object userInfo: nil];
}

View file

@ -430,7 +430,7 @@ static NSComparisonResult aSort(FastArrayItem i0, FastArrayItem i1)
else if ([obj respondsToSelector: @selector(delegate)])
{
obj = [obj delegate];
if ([obj respondsToSelector: @selector(limitDateForMode:)])
if (obj != nil && [obj respondsToSelector: @selector(limitDateForMode:)])
{
NSDate *d = [obj limitDateForMode: mode];
@ -874,7 +874,7 @@ const NSMapTableValueCallBacks ArrayMapValueCallBacks =
else if ([obj respondsToSelector: @selector(delegate)])
{
obj = [obj delegate];
if ([obj respondsToSelector:
if (obj != nil && [obj respondsToSelector:
@selector(timedOutEvent:type:forMode:)])
{
nxt = [obj timedOutEvent: min_watcher->data

View file

@ -227,21 +227,16 @@ static SEL dValSel = @selector(decodeValueOfObjCType:at:);
}
- (void) dealloc
{
[original release];
RELEASE(original);
if (name)
{
[name release];
RELEASE(name);
}
NSDeallocateObject(self);
}
- (void) mapToClass: (Class)c withName: (NSString*)n
{
if (n != name)
{
[n retain];
[name release];
name = n;
}
ASSIGN(name, n);
class = c;
}
@end
@ -321,11 +316,11 @@ mapClassName(NSUnarchiverObjectInfo *info)
}
NS_HANDLER
{
[unarchiver release];
RELEASE(unarchiver);
[localException raise];
}
NS_ENDHANDLER
[unarchiver release];
RELEASE(unarchiver);
return obj;
}
@ -343,8 +338,8 @@ mapClassName(NSUnarchiverObjectInfo *info)
- (void) dealloc
{
[data release];
[objDict release];
RELEASE(data);
RELEASE(objDict);
if (clsMap)
{
NSZone *z = clsMap->zone;
@ -514,7 +509,7 @@ mapClassName(NSUnarchiverObjectInfo *info)
* order to give the appearance that it's actually a
* new object.
*/
[obj retain];
RETAIN(obj);
}
else
{
@ -601,7 +596,7 @@ mapClassName(NSUnarchiverObjectInfo *info)
classInfo = [NSUnarchiverObjectInfo newWithName: className];
[classInfo mapToClass: c withName: className];
[objDict setObject: classInfo forKey: className];
[classInfo release];
RELEASE(classInfo);
}
classInfo->version = cver;
FastArrayAddItem(clsMap, (FastArrayItem)classInfo);
@ -965,7 +960,7 @@ mapClassName(NSUnarchiverObjectInfo *info)
d = [[NSData allocWithZone: zone] initWithBytesNoCopy: b
length: l
fromZone: zone];
[d autorelease];
AUTORELEASE(d);
[self decodeArrayOfObjCType: @encode(unsigned char)
count: l
at: b];
@ -1053,7 +1048,7 @@ mapClassName(NSUnarchiverObjectInfo *info)
/*
* A newly allocated object needs to be autoreleased.
*/
return [obj autorelease];
return AUTORELEASE(obj);
}
}
@ -1108,7 +1103,7 @@ mapClassName(NSUnarchiverObjectInfo *info)
{
info = [NSUnarchiverClassInfo newWithName: nameInArchive];
[clsDict setObject: info forKey: nameInArchive];
[info release];
RELEASE(info);
}
[info mapToClass: c withName: trueName];
}
@ -1146,7 +1141,7 @@ mapClassName(NSUnarchiverObjectInfo *info)
{
info = [NSUnarchiverObjectInfo newWithName: nameInArchive];
[objDict setObject: info forKey: nameInArchive];
[info release];
RELEASE(info);
}
[info mapToClass: c withName: trueName];
}
@ -1208,8 +1203,8 @@ mapClassName(NSUnarchiverObjectInfo *info)
{
Class c;
[data release];
data = [anObject retain];
RELEASE(data);
data = RETAIN(anObject);
c = fastClass(data);
if (src != self)
{
@ -1311,7 +1306,7 @@ mapClassName(NSUnarchiverObjectInfo *info)
(*dValImp)(self, dValSel, @encode(id), (void*)&obj);
if (obj)
{
[obj release];
RELEASE(obj);
}
}
[self decodeArrayOfObjCType: type count: count at: buf];
@ -1335,7 +1330,7 @@ mapClassName(NSUnarchiverObjectInfo *info)
(*dValImp)(self, dValSel, @encode(id), (void*)&obj);
if (obj)
{
[obj release];
RELEASE(obj);
}
}
(*dValImp)(self, dValSel, type, buf);
@ -1355,7 +1350,7 @@ mapClassName(NSUnarchiverObjectInfo *info)
(*dValImp)(self, dValSel, @encode(id), (void*)&obj);
if (obj)
{
[obj release];
RELEASE(obj);
}
}
(*dValImp)(self, dValSel, type, buf);
@ -1374,7 +1369,7 @@ mapClassName(NSUnarchiverObjectInfo *info)
(*dValImp)(self, dValSel, @encode(id), (void*)&obj);
if (obj)
{
[obj release];
RELEASE(obj);
}
}
(*dValImp)(self, dValSel, @encode(id), (void*)anObject);

View file

@ -65,7 +65,7 @@ static NSString* GNU_UserDefaultsDatabaseLock = @"GNUstep/.GNUstepUDLock";
@interface NSUserDefaults (__local_NSUserDefaults)
- (void)__createStandardSearchList;
- (NSDictionary *)__createArgumentDictionary;
- (void)__changePersistentDomain:(NSString *)domainName;
- (void)__changePersistentDomain: (NSString *)domainName;
- (void)__timerTicked: (NSTimer*)tim;
@end
@ -123,7 +123,7 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
defs = [NSUserDefaults standardUserDefaults];
ampm = [NSArray arrayWithObjects: @"AM", @"PM", nil];
short_month = [NSArray arrayWithObjects:
short_month = [NSArray arrayWithObjects:
@"Jan",
@"Feb",
@"Mar",
@ -137,7 +137,7 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
@"Nov",
@"Dec",
nil];
long_month = [NSArray arrayWithObjects:
long_month = [NSArray arrayWithObjects:
@"January",
@"February",
@"March",
@ -151,7 +151,7 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
@"November",
@"December",
nil];
short_day = [NSArray arrayWithObjects:
short_day = [NSArray arrayWithObjects:
@"Sun",
@"Mon",
@"Tue",
@ -160,7 +160,7 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
@"Fri",
@"Sat",
nil];
long_day = [NSArray arrayWithObjects:
long_day = [NSArray arrayWithObjects:
@"Sunday",
@"Monday",
@"Tuesday",
@ -169,28 +169,28 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
@"Friday",
@"Saturday",
nil];
earlyt = [NSArray arrayWithObjects:
earlyt = [NSArray arrayWithObjects:
@"prior",
@"last",
@"past",
@"ago",
nil];
latert = [NSArray arrayWithObjects:
latert = [NSArray arrayWithObjects:
@"next",
nil];
ymw_names = [NSArray arrayWithObjects:
ymw_names = [NSArray arrayWithObjects:
@"year",
@"month",
@"week",
nil];
hour_names = [NSArray arrayWithObjects:
hour_names = [NSArray arrayWithObjects:
[NSArray arrayWithObjects: @"0", @"midnight", nil],
[NSArray arrayWithObjects: @"12", @"noon", @"lunch", nil],
[NSArray arrayWithObjects: @"10", @"morning", nil],
[NSArray arrayWithObjects: @"14", @"afternoon", nil],
[NSArray arrayWithObjects: @"19", @"dinner", nil],
nil];
registrationDefaults = [NSDictionary dictionaryWithObjectsAndKeys:
registrationDefaults = [NSDictionary dictionaryWithObjectsAndKeys:
ampm, NSAMPMDesignation,
long_month, NSMonthNameArray,
long_day, NSWeekDayNameArray,
@ -218,9 +218,9 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
+ (NSArray *)userLanguages
{
NSMutableArray *uL = [NSMutableArray arrayWithCapacity:5];
NSMutableArray *uL = [NSMutableArray arrayWithCapacity: 5];
NSArray *currLang = [[self standardUserDefaults]
stringArrayForKey:@"Languages"];
stringArrayForKey: @"Languages"];
NSEnumerator *enumerator;
id obj;
@ -231,35 +231,36 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
env_list = getenv("LANGUAGES");
if (env_list)
{
env = [NSString stringWithCString:env_list];
currLang = [[env componentsSeparatedByString:@";"] retain];
env = [NSString stringWithCString: env_list];
currLang = [[env componentsSeparatedByString: @";"] retain];
}
}
[uL addObjectsFromArray:currLang];
if (currLang)
[uL addObjectsFromArray: currLang];
// Check if "English" is includet
enumerator = [uL objectEnumerator];
while ((obj = [enumerator nextObject]))
{
if ([obj isEqualToString:@"English"])
if ([obj isEqualToString: @"English"])
return uL;
}
[uL addObject:@"English"];
[uL addObject: @"English"];
return uL;
}
+ (void)setUserLanguages:(NSArray *)languages
+ (void)setUserLanguages: (NSArray *)languages
{
NSMutableDictionary *globDict = [[self standardUserDefaults]
persistentDomainForName:NSGlobalDomain];
persistentDomainForName: NSGlobalDomain];
if (!languages) // Remove the entry
[globDict removeObjectForKey:@"Languages"];
[globDict removeObjectForKey: @"Languages"];
else
[globDict setObject:languages forKey:@"Languages"];
[globDict setObject: languages forKey: @"Languages"];
[[self standardUserDefaults]
setPersistentDomain:globDict forName:NSGlobalDomain];
setPersistentDomain: globDict forName: NSGlobalDomain];
return;
}
@ -267,13 +268,13 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
*** Initializing the User Defaults
*************************************************************************/
- (id)init
/* Initializes defaults for current user calling initWithUser:. */
/* Initializes defaults for current user calling initWithUser: . */
{
return [self initWithUser:NSUserName()];
return [self initWithUser: NSUserName()];
}
/* Initializes defaults for the specified user calling initWithFile:. */
- (id)initWithUser:(NSString *)userName
/* Initializes defaults for the specified user calling initWithFile: . */
- (id)initWithUser: (NSString *)userName
{
NSString* userHome = NSHomeDirectoryForUser(userName);
NSString *filename;
@ -289,7 +290,7 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
return [self initWithContentsOfFile: filename];
}
- (id)initWithContentsOfFile:(NSString *)path
- (id)initWithContentsOfFile: (NSString *)path
/* Initializes defaults for the specified path. Returns an object with
an empty search list. */
{
@ -302,20 +303,20 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
defaultsDatabase = [path copy];
else
defaultsDatabase =
[[NSMutableString stringWithFormat:@"%@/%@",
[[NSMutableString stringWithFormat: @"%@/%@",
NSHomeDirectoryForUser(NSUserName()),
GNU_UserDefaultsDatabase] retain];
if ([[defaultsDatabase lastPathComponent] isEqual:
if ([[defaultsDatabase lastPathComponent] isEqual:
[GNU_UserDefaultsDatabase lastPathComponent]] == YES)
defaultsDatabaseLockName =
[[NSMutableString stringWithFormat:@"%@/%@",
[[NSMutableString stringWithFormat: @"%@/%@",
[defaultsDatabase stringByDeletingLastPathComponent],
[GNU_UserDefaultsDatabaseLock lastPathComponent]]
retain];
else
defaultsDatabaseLockName =
[[NSMutableString stringWithFormat:@"%@/%@",
[[NSMutableString stringWithFormat: @"%@/%@",
NSHomeDirectoryForUser(NSUserName()),
GNU_UserDefaultsDatabaseLock] retain];
defaultsDatabaseLock =
@ -326,10 +327,10 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
lastPathComponent] retain];
// Create an empty search list
searchList = [[NSMutableArray arrayWithCapacity:10] retain];
searchList = [[NSMutableArray arrayWithCapacity: 10] retain];
// Initialize persDomains from the archived user defaults (persistent)
persDomains = [[NSMutableDictionary dictionaryWithCapacity:10] retain];
persDomains = [[NSMutableDictionary dictionaryWithCapacity: 10] retain];
if ([self synchronize] == NO)
{
NSRunLoop *runLoop = [NSRunLoop currentRunLoop];
@ -352,28 +353,28 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
}
// Check and if not existent add the Application and the Global domains
if (![persDomains objectForKey:processName])
if (![persDomains objectForKey: processName])
{
[persDomains setObject:
[persDomains setObject:
[NSMutableDictionary
dictionaryWithCapacity:10] forKey:processName];
[self __changePersistentDomain:processName];
dictionaryWithCapacity: 10] forKey: processName];
[self __changePersistentDomain: processName];
}
if (![persDomains objectForKey:NSGlobalDomain])
if (![persDomains objectForKey: NSGlobalDomain])
{
[persDomains setObject:
[persDomains setObject:
[NSMutableDictionary
dictionaryWithCapacity:10] forKey:NSGlobalDomain];
[self __changePersistentDomain:NSGlobalDomain];
dictionaryWithCapacity: 10] forKey: NSGlobalDomain];
[self __changePersistentDomain: NSGlobalDomain];
}
// Create volatile defaults and add the Argument and the Registration domains
tempDomains = [[NSMutableDictionary dictionaryWithCapacity:10] retain];
[tempDomains setObject:[self __createArgumentDictionary]
forKey:NSArgumentDomain];
[tempDomains setObject:
tempDomains = [[NSMutableDictionary dictionaryWithCapacity: 10] retain];
[tempDomains setObject: [self __createArgumentDictionary]
forKey: NSArgumentDomain];
[tempDomains setObject:
[NSMutableDictionary
dictionaryWithCapacity:10] forKey:NSRegistrationDomain];
dictionaryWithCapacity: 10] forKey: NSRegistrationDomain];
return self;
}
@ -393,7 +394,7 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
- (NSString *)description
{
NSMutableString *desc =
[NSMutableString stringWithFormat:@"%@",[super description]];
[NSMutableString stringWithFormat: @"%@",[super description]];
// $$$ Not Implemented
// It's good idea to put all useful info here -- so I can test it later
@ -404,63 +405,63 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
/*************************************************************************
*** Getting and Setting a Default
*************************************************************************/
- (NSArray *)arrayForKey:(NSString *)defaultName
- (NSArray *)arrayForKey: (NSString *)defaultName
{
id obj = [self objectForKey:defaultName];
id obj = [self objectForKey: defaultName];
if (obj && [obj isKindOfClass:[NSArray class]])
if (obj && [obj isKindOfClass: [NSArray class]])
return obj;
return nil;
}
- (BOOL)boolForKey:(NSString *)defaultName
- (BOOL)boolForKey: (NSString *)defaultName
{
id obj = [self stringForKey:defaultName];
id obj = [self stringForKey: defaultName];
if (obj
&& ([obj isEqualToString:@"YES"] || [obj isEqualToString:@"yes"]
&& ([obj isEqualToString: @"YES"] || [obj isEqualToString: @"yes"]
|| [obj intValue]))
return YES;
return NO;
}
- (NSData *)dataForKey:(NSString *)defaultName
- (NSData *)dataForKey: (NSString *)defaultName
{
id obj = [self objectForKey:defaultName];
id obj = [self objectForKey: defaultName];
if (obj && [obj isKindOfClass:[NSData class]])
if (obj && [obj isKindOfClass: [NSData class]])
return obj;
return nil;
}
- (NSDictionary *)dictionaryForKey:(NSString *)defaultName
- (NSDictionary *)dictionaryForKey: (NSString *)defaultName
{
id obj = [self objectForKey:defaultName];
id obj = [self objectForKey: defaultName];
if (obj && [obj isKindOfClass:[NSDictionary class]])
if (obj && [obj isKindOfClass: [NSDictionary class]])
return obj;
return nil;
}
- (float)floatForKey:(NSString *)defaultName
- (float)floatForKey: (NSString *)defaultName
{
id obj = [self stringForKey:defaultName];
id obj = [self stringForKey: defaultName];
if (obj)
return [obj floatValue];
return 0.0;
}
- (int)integerForKey:(NSString *)defaultName
- (int)integerForKey: (NSString *)defaultName
{
id obj = [self stringForKey:defaultName];
id obj = [self stringForKey: defaultName];
if (obj)
return [obj intValue];
return 0;
}
- (id)objectForKey:(NSString *)defaultName
- (id)objectForKey: (NSString *)defaultName
{
NSEnumerator *enumerator = [searchList objectEnumerator];
id object = nil;
@ -470,20 +471,20 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
{
id dict;
dict = [persDomains objectForKey:dN];
if (dict && (object = [dict objectForKey:defaultName]))
dict = [persDomains objectForKey: dN];
if (dict && (object = [dict objectForKey: defaultName]))
break;
dict = [tempDomains objectForKey:dN];
if (dict && (object = [dict objectForKey:defaultName]))
dict = [tempDomains objectForKey: dN];
if (dict && (object = [dict objectForKey: defaultName]))
break;
}
return object;
}
- (void)removeObjectForKey:(NSString *)defaultName
- (void)removeObjectForKey: (NSString *)defaultName
{
id obj = [[persDomains objectForKey:processName] objectForKey:defaultName];
id obj = [[persDomains objectForKey: processName] objectForKey: defaultName];
if (obj)
{
@ -499,37 +500,37 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
dict = [obj mutableCopy];
[persDomains setObject: dict forKey: processName];
}
[dict removeObjectForKey:defaultName];
[self __changePersistentDomain:processName];
[dict removeObjectForKey: defaultName];
[self __changePersistentDomain: processName];
}
return;
}
- (void)setBool:(BOOL)value forKey:(NSString *)defaultName
- (void)setBool: (BOOL)value forKey: (NSString *)defaultName
{
id obj = (value)?@"YES":@"NO";
id obj = (value)?@"YES": @"NO";
[self setObject:obj forKey:defaultName];
[self setObject: obj forKey: defaultName];
return;
}
- (void)setFloat:(float)value forKey:(NSString *)defaultName
- (void)setFloat: (float)value forKey: (NSString *)defaultName
{
char buf[32];
sprintf(buf,"%g",value);
[self setObject:[NSString stringWithCString:buf] forKey:defaultName];
[self setObject: [NSString stringWithCString: buf] forKey: defaultName];
return;
}
- (void)setInteger:(int)value forKey:(NSString *)defaultName
- (void)setInteger: (int)value forKey: (NSString *)defaultName
{
char buf[32];
sprintf(buf,"%d",value);
[self setObject:[NSString stringWithCString:buf] forKey:defaultName];
[self setObject: [NSString stringWithCString: buf] forKey: defaultName];
return;
}
- (void)setObject:(id)value forKey:(NSString *)defaultName
- (void)setObject: (id)value forKey: (NSString *)defaultName
{
if (value && defaultName && ([defaultName length] > 0))
{
@ -545,15 +546,15 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
dict = [obj mutableCopy];
[persDomains setObject: dict forKey: processName];
}
[dict setObject:value forKey:defaultName];
[self __changePersistentDomain:processName];
[dict setObject: value forKey: defaultName];
[self __changePersistentDomain: processName];
}
return;
}
- (NSArray *)stringArrayForKey:(NSString *)defaultName
- (NSArray *)stringArrayForKey: (NSString *)defaultName
{
id arr = [self arrayForKey:defaultName];
id arr = [self arrayForKey: defaultName];
if (arr)
{
@ -561,18 +562,18 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
id obj;
while ((obj = [enumerator nextObject]))
if ( ! [obj isKindOfClass:[NSString class]])
if ( ! [obj isKindOfClass: [NSString class]])
return nil;
return arr;
}
return nil;
}
- (NSString *)stringForKey:(NSString *)defaultName
- (NSString *)stringForKey: (NSString *)defaultName
{
id obj = [self objectForKey:defaultName];
id obj = [self objectForKey: defaultName];
if (obj && [obj isKindOfClass:[NSString class]])
if (obj && [obj isKindOfClass: [NSString class]])
return obj;
return nil;
}
@ -585,7 +586,7 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
return searchList;
}
- (void)setSearchList:(NSArray*)newList
- (void)setSearchList: (NSArray*)newList
{
DESTROY(dictionaryRep);
[searchList release];
@ -595,9 +596,9 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
/*************************************************************************
*** Maintaining Persistent Domains
*************************************************************************/
- (NSDictionary *)persistentDomainForName:(NSString *)domainName
- (NSDictionary *)persistentDomainForName: (NSString *)domainName
{
return [[persDomains objectForKey:domainName] copy];
return [[persDomains objectForKey: domainName] copy];
}
- (NSArray *)persistentDomainNames
@ -605,30 +606,30 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
return [persDomains allKeys];
}
- (void)removePersistentDomainForName:(NSString *)domainName
- (void)removePersistentDomainForName: (NSString *)domainName
{
if ([persDomains objectForKey:domainName])
if ([persDomains objectForKey: domainName])
{
[persDomains removeObjectForKey:domainName];
[self __changePersistentDomain:domainName];
[persDomains removeObjectForKey: domainName];
[self __changePersistentDomain: domainName];
}
return;
}
- (void)setPersistentDomain:(NSDictionary *)domain
forName:(NSString *)domainName
- (void)setPersistentDomain: (NSDictionary *)domain
forName: (NSString *)domainName
{
id dict = [tempDomains objectForKey:domainName];
id dict = [tempDomains objectForKey: domainName];
if (dict)
{
[NSException raise:NSInvalidArgumentException
format:@"Volatile domain with %@ already exists",
[NSException raise: NSInvalidArgumentException
format: @"Volatile domain with %@ already exists",
domainName];
return;
}
[persDomains setObject:domain forKey:domainName];
[self __changePersistentDomain:domainName];
[persDomains setObject: domain forKey: domainName];
[self __changePersistentDomain: domainName];
return;
}
@ -640,7 +641,7 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
{
tickingTimer = [NSTimer scheduledTimerWithTimeInterval: 30
target: self
selector: @selector(__timerTicked:)
selector: @selector(__timerTicked: )
userInfo: nil
repeats: NO];
}
@ -674,7 +675,7 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
{
NSDictionary *attr;
attr = [NSDictionary dictionaryWithObjectsAndKeys:
attr = [NSDictionary dictionaryWithObjectsAndKeys:
NSUserName(), NSFileOwnerAccountName, nil];
NSLog(@"Creating defaults database file %@", defaultsDatabase);
[[NSFileManager defaultManager] createFileAtPath: defaultsDatabase
@ -740,32 +741,32 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
/*************************************************************************
*** Maintaining Volatile Domains
*************************************************************************/
- (void)removeVolatileDomainForName:(NSString *)domainName
- (void)removeVolatileDomainForName: (NSString *)domainName
{
DESTROY(dictionaryRep);
[tempDomains removeObjectForKey:domainName];
[tempDomains removeObjectForKey: domainName];
}
- (void)setVolatileDomain:(NSDictionary *)domain
forName:(NSString *)domainName
- (void)setVolatileDomain: (NSDictionary *)domain
forName: (NSString *)domainName
{
id dict = [persDomains objectForKey:domainName];
id dict = [persDomains objectForKey: domainName];
if (dict)
{
[NSException raise:NSInvalidArgumentException
format:@"Persistent domain with %@ already exists",
[NSException raise: NSInvalidArgumentException
format: @"Persistent domain with %@ already exists",
domainName];
return;
}
DESTROY(dictionaryRep);
[tempDomains setObject:domain forKey:domainName];
[tempDomains setObject: domain forKey: domainName];
return;
}
- (NSDictionary *)volatileDomainForName:(NSString *)domainName
- (NSDictionary *)volatileDomainForName: (NSString *)domainName
{
return [tempDomains objectForKey:domainName];
return [tempDomains objectForKey: domainName];
}
- (NSArray *)volatileDomainNames
@ -825,22 +826,22 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
// Note: The search list should exist!
// 1. NSArgumentDomain
[searchList addObject:NSArgumentDomain];
[searchList addObject: NSArgumentDomain];
// 2. Application
[searchList addObject:processName];
[searchList addObject: processName];
// 3. User's preferred languages
while ((object = [enumerator nextObject]))
{
[searchList addObject:object];
[searchList addObject: object];
}
// 4. NSGlobalDomain
[searchList addObject:NSGlobalDomain];
[searchList addObject: NSGlobalDomain];
// 5. NSRegistrationDomain
[searchList addObject:NSRegistrationDomain];
[searchList addObject: NSRegistrationDomain];
return;
}
@ -851,7 +852,7 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
//$$$ NSArray *args = searchList; // $$$
NSEnumerator *enumerator = [args objectEnumerator];
NSMutableDictionary *argDict =
[NSMutableDictionary dictionaryWithCapacity:2];
[NSMutableDictionary dictionaryWithCapacity: 2];
BOOL done;
id key, val;
@ -860,29 +861,29 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
while (!done)
{
if ([key hasPrefix:@"-"]) {
if ([key hasPrefix: @"-"]) {
/* anything beginning with a '-' is a defaults key and we must strip
the '-' from it. As a special case, we leave the '- in place
for '-GS...' and '--GS...' for backward compatibility. */
if ([key hasPrefix:@"-GS"] == NO && [key hasPrefix:@"--GS"] == NO) {
if ([key hasPrefix: @"-GS"] == NO && [key hasPrefix: @"--GS"] == NO) {
key = [key substringFromIndex: 1];
}
val = [enumerator nextObject];
if (!val)
{ // No more args
[argDict setObject:@"" forKey:key]; // arg is empty.
[argDict setObject: @"" forKey: key]; // arg is empty.
done = YES;
continue;
}
else if ([val hasPrefix:@"-"])
else if ([val hasPrefix: @"-"])
{ // Yet another argument
[argDict setObject:@"" forKey:key]; // arg is empty.
[argDict setObject: @"" forKey: key]; // arg is empty.
key = val;
continue;
}
else
{ // Real parameter
[argDict setObject:val forKey:key];
[argDict setObject: val forKey: key];
}
}
done = ((key = [enumerator nextObject]) == nil);
@ -891,7 +892,7 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
return argDict;
}
- (void)__changePersistentDomain:(NSString *)domainName
- (void)__changePersistentDomain: (NSString *)domainName
{
NSEnumerator *enumerator = nil;
id obj;
@ -899,18 +900,18 @@ static BOOL setSharedDefaults = NO; /* Flag to prevent infinite recursion */
DESTROY(dictionaryRep);
if (!changedDomains)
{
changedDomains = [[NSMutableArray arrayWithCapacity:5] retain];
changedDomains = [[NSMutableArray arrayWithCapacity: 5] retain];
[[NSNotificationCenter defaultCenter]
postNotificationName:NSUserDefaultsDidChangeNotification object:nil];
postNotificationName: NSUserDefaultsDidChangeNotification object: nil];
}
enumerator = [changedDomains objectEnumerator];
while ((obj = [enumerator nextObject]))
{
if ([obj isEqualToString:domainName])
if ([obj isEqualToString: domainName])
return;
}
[changedDomains addObject:domainName];
[changedDomains addObject: domainName];
return;
}