]> git.saurik.com Git - winterboard.git/commitdiff
Use @synchronized() to guard Bundles_ (old crash).
authorJay Freeman (saurik) <saurik@saurik.com>
Tue, 25 Nov 2014 23:50:26 +0000 (15:50 -0800)
committerJay Freeman (saurik) <saurik@saurik.com>
Tue, 25 Nov 2014 23:50:26 +0000 (15:50 -0800)
Library.mm

index 0e69b914321426fb122783dbb9bcb5e460029819..0479b3e315fedff4cb143f63806bdb3b71dc22f0 100644 (file)
@@ -434,7 +434,11 @@ static NSString *$pathForIcon$(SBApplication *self, NSString *suffix = @"") {
     if (path == nil || [path length] == 0 || [path isEqualToString:@"/"])
         return nil;
 
-    NSBundle *bundle([Bundles_ objectForKey:path]);
+    NSBundle *bundle;
+    @synchronized (Bundles_) {
+        bundle = [Bundles_ objectForKey:path];
+    }
+
     if (reinterpret_cast<id>(bundle) == [NSNull null])
         return nil;
     else if (bundle == nil) {
@@ -444,7 +448,10 @@ static NSString *$pathForIcon$(SBApplication *self, NSString *suffix = @"") {
             bundle = [NSBundle wb$bundleWithFile:path];
         if (Debug_)
             NSLog(@"WB:Debug:PathBundle(%@, %@)", path, bundle);
-        [Bundles_ setObject:(bundle == nil ? [NSNull null] : reinterpret_cast<id>(bundle)) forKey:path];
+
+        @synchronized (Bundles_) {
+            [Bundles_ setObject:(bundle == nil ? [NSNull null] : reinterpret_cast<id>(bundle)) forKey:path];
+        }
     }
 
     return bundle;