]> git.saurik.com Git - cydia.git/commitdiff
Sorting packages also requires the database lock.
authorJay Freeman (saurik) <saurik@saurik.com>
Sat, 17 May 2014 22:08:32 +0000 (15:08 -0700)
committerJay Freeman (saurik) <saurik@saurik.com>
Sat, 17 May 2014 22:08:32 +0000 (15:08 -0700)
MobileCydia.mm

index 586a54e596b77cea72f2f234a680e8ba997310ad..8f440f5aaa3bc71c1343fcc9c208b68a9db06936 100644 (file)
@@ -6606,16 +6606,14 @@ typedef Function<void, NSMutableArray *> PackageSorter;
 } }
 
 - (NSMutableArray *) _reloadPackages {
-    NSMutableArray *filtered;
-    PackageSorter sorter;
-
 @synchronized (database_) {
     era_ = [database_ era];
-    NSArray *packages([database_ packages]);
 
-    filtered = [NSMutableArray arrayWithCapacity:[packages count]];
+    NSArray *packages([database_ packages]);
+    NSMutableArray *filtered([NSMutableArray arrayWithCapacity:[packages count]]);
 
     PackageFilter filter;
+    PackageSorter sorter;
 
     @synchronized (self) {
         filter = filter_;
@@ -6627,12 +6625,11 @@ typedef Function<void, NSMutableArray *> PackageSorter;
             if ([package valid] && filter(package))
                 [filtered addObject:package];
     _end
-}
 
     if (sorter)
         sorter(filtered);
     return filtered;
-}
+} }
 
 - (id) initWithDatabase:(Database *)database title:(NSString *)title filter:(PackageFilter)filter {
     if ((self = [super initWithDatabase:database title:title]) != nil) {