Author: rfm
Date: Fri Mar 18 15:56:55 2016
New Revision: 39565

URL: http://svn.gna.org/viewcvs/gnustep?rev=39565&view=rev
Log:
make sure to unlock after an exception

Modified:
    libs/base/trunk/Source/NSUserDefaults.m

Modified: libs/base/trunk/Source/NSUserDefaults.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/Source/NSUserDefaults.m?rev=39565&r1=39564&r2=39565&view=diff
==============================================================================
--- libs/base/trunk/Source/NSUserDefaults.m     (original)
+++ libs/base/trunk/Source/NSUserDefaults.m     Fri Mar 18 15:56:55 2016
@@ -1789,7 +1789,8 @@
 - (BOOL) synchronize
 {
   NSDate               *saved;
-  BOOL                 wasLocked;
+  BOOL                 isLocked = NO;
+  BOOL                 wasLocked = NO;
   BOOL                 result = YES;
   BOOL                 haveChange = NO;
 
@@ -1825,6 +1826,7 @@
              NSEnumerator              *enumerator;
              NSString                  *domainName;
 
+              isLocked = YES;
              haveChange = [self _readDefaults];
              if (YES == haveChange)
                {
@@ -1867,8 +1869,9 @@
                {
                  updateCache(self);
                }
-             if (NO == wasLocked)
+             if (YES == isLocked && NO == wasLocked)
                {
+                  isLocked = NO;
                  [self _unlockDefaultsFile];
                }
            }
@@ -1878,6 +1881,11 @@
     {
       [_lastSync release];
       _lastSync = saved;
+      if (YES == isLocked && NO == wasLocked)
+        {
+          isLocked = NO;
+          [self _unlockDefaultsFile];
+        }
       [_lock unlock];
       [localException raise];
     }


_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs

Reply via email to