]> git.saurik.com Git - cydia.git/commitdiff
Entirely theoretical getInstalledPackages() threading bug: I'm anal.
authorJay Freeman (saurik) <saurik@saurik.com>
Sun, 20 Feb 2011 00:32:58 +0000 (16:32 -0800)
committerJay Freeman (saurik) <saurik@saurik.com>
Sun, 20 Feb 2011 01:01:07 +0000 (17:01 -0800)
MobileCydia.mm

index bda674d8b3f4126229313fcada107cc0f069ad26..bfea21c9d934a0841afb6a7fdc1dc96c50168267 100644 (file)
@@ -4004,13 +4004,15 @@ static NSString *Warning_;
 }
 
 - (NSArray *) getInstalledPackages {
-    NSArray *packages([[Database sharedInstance] packages]);
+    Database *database([Database sharedInstance]);
+@synchronized (database) {
+    NSArray *packages([database packages]);
     NSMutableArray *installed([NSMutableArray arrayWithCapacity:1024]);
     for (Package *package in packages)
-        if ([package installed] != nil)
+        if (![package uninstalled])
             [installed addObject:package];
     return installed;
-}
+} }
 
 - (Package *) getPackageById:(NSString *)id {
     Package *package([[Database sharedInstance] packageWithName:id]);