git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@37046 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-MacDonald 2013-09-06 09:21:18 +00:00
parent b7ea982477
commit a92cad7600
2 changed files with 35 additions and 25 deletions

View file

@ -1,4 +1,10 @@
2013-09-30 Fred Kiefer <FredKiefer@gmx.de>
2013-09-06 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSUserDefaults.m: Update cache when we syunchronise a new
domain to disk (was only updating on changes to existing domains).
Should fix bug #39300
2013-08-30 Fred Kiefer <FredKiefer@gmx.de>
* Headers/GNUstepBase/GSVersionMacros.h: Fix usage of __APPLE__ macro.
Patch by Graham Lee <iamleeg@gmail.com>

View file

@ -1803,7 +1803,6 @@ static BOOL isPlistObject(id o)
{
NSEnumerator *enumerator;
NSString *domainName;
NSFileManager *mgr;
haveChange = [self _readDefaults];
if (YES == haveChange)
@ -1811,32 +1810,37 @@ static BOOL isPlistObject(id o)
DESTROY(_dictionaryRep);
}
mgr = [NSFileManager defaultManager];
if (_changedDomains != nil)
{
haveChange = YES;
if (_changedDomains != nil && NO == [self _readOnly])
{
GSPersistentDomain *domain;
if (NO == [self _readOnly])
{
GSPersistentDomain *domain;
NSFileManager *mgr;
enumerator = [_changedDomains objectEnumerator];
DESTROY(_changedDomains); // Retained by enumerator.
while ((domainName = [enumerator nextObject]) != nil)
{
domain = [_persDomains objectForKey: domainName];
if (domain != nil) // Domain was added or changed
{
[domain synchronize];
}
else // Domain was removed
{
NSString *path;
mgr = [NSFileManager defaultManager];
enumerator = [_changedDomains objectEnumerator];
DESTROY(_changedDomains); // Retained by enumerator.
while ((domainName = [enumerator nextObject]) != nil)
{
domain = [_persDomains objectForKey: domainName];
if (domain != nil) // Domain was added or changed
{
[domain synchronize];
}
else // Domain was removed
{
NSString *path;
path = [[_defaultsDatabase
stringByAppendingPathComponent: domainName]
stringByAppendingPathExtension: @"plist"];
[mgr removeFileAtPath: path handler: nil];
}
}
}
path = [[_defaultsDatabase
stringByAppendingPathComponent: domainName]
stringByAppendingPathExtension: @"plist"];
[mgr removeFileAtPath: path handler: nil];
}
}
}
}
if (YES == haveChange)
{