]> git.saurik.com Git - winterboard.git/commitdiff
Use @synchronized in getTheme.
authorJay Freeman (saurik) <saurik@saurik.com>
Thu, 27 Oct 2011 20:18:39 +0000 (20:18 +0000)
committerJay Freeman (saurik) <saurik@saurik.com>
Thu, 27 Oct 2011 20:18:52 +0000 (20:18 +0000)
Library.mm

index 17452bc3a44ce9cc27931e6cfa89747d7106938d..7dd009da4538436bbe9f8b422db5487ee6826965 100644 (file)
@@ -294,8 +294,13 @@ static NSArray *$useScale$(NSArray *files, bool use = true) {
 }
 
 static NSString *$getTheme$(NSArray *files, NSArray *themes = Themes_) {
-    if (NSString *path = [Themed_ objectForKey:files])
-        return reinterpret_cast<id>(path) == [NSNull null] ? nil : path;
+    // XXX: this is not reasonable; OMG
+    id key(files);
+
+    @synchronized (Themed_) {
+        if (NSString *path = [Themed_ objectForKey:key])
+            return reinterpret_cast<id>(path) == [NSNull null] ? nil : path;
+    }
 
     if (Debug_)
         NSLog(@"WB:Debug: %@", [files description]);
@@ -312,7 +317,10 @@ static NSString *$getTheme$(NSArray *files, NSArray *themes = Themes_) {
     path = nil;
   set:
 
-    [Themed_ setObject:(path == nil ? [NSNull null] : reinterpret_cast<id>(path)) forKey:files];
+    @synchronized (Themed_) {
+        [Themed_ setObject:(path == nil ? [NSNull null] : reinterpret_cast<id>(path)) forKey:key];
+    }
+
     return path;
 }
 // }}}