From: Jay Freeman (saurik) Date: Sun, 20 Feb 2011 00:32:58 +0000 (-0800) Subject: Entirely theoretical getInstalledPackages() threading bug: I'm anal. X-Git-Tag: v1.1.0%b1~280 X-Git-Url: https://git.saurik.com/cydia.git/commitdiff_plain/26e6829b74dd3ae2fc50dba47f6721aedb6d6b34 Entirely theoretical getInstalledPackages() threading bug: I'm anal. --- diff --git a/MobileCydia.mm b/MobileCydia.mm index bda674d8..bfea21c9 100644 --- a/MobileCydia.mm +++ b/MobileCydia.mm @@ -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]);