]> git.saurik.com Git - cydia.git/commitdiff
I need to @synchronize access to the StateCache.
authorJay Freeman (saurik) <saurik@saurik.com>
Thu, 17 Mar 2011 07:01:24 +0000 (00:01 -0700)
committerJay Freeman (saurik) <saurik@saurik.com>
Thu, 17 Mar 2011 07:05:28 +0000 (00:05 -0700)
MobileCydia.mm

index 6555d3c46be32bff40d8ae3703266091f47e5a95..4b0fb36e6d97d2ef9fe793a7d9e07cbe1d5c92fd 100644 (file)
@@ -2620,11 +2620,19 @@ struct PackageNameOrdering :
 }
 
 - (BOOL) hasMode {
 }
 
 - (BOOL) hasMode {
+@synchronized (database_) {
+    if ([database_ era] != era_ || iterator_.end())
+        return nil;
+
     pkgDepCache::StateCache &state([database_ cache][iterator_]);
     return state.Mode != pkgDepCache::ModeKeep;
     pkgDepCache::StateCache &state([database_ cache][iterator_]);
     return state.Mode != pkgDepCache::ModeKeep;
-}
+} }
 
 - (NSString *) mode {
 
 - (NSString *) mode {
+@synchronized (database_) {
+    if ([database_ era] != era_ || iterator_.end())
+        return nil;
+
     pkgDepCache::StateCache &state([database_ cache][iterator_]);
 
     switch (state.Mode) {
     pkgDepCache::StateCache &state([database_ cache][iterator_]);
 
     switch (state.Mode) {
@@ -2656,7 +2664,7 @@ struct PackageNameOrdering :
             }
         _nodefault
     }
             }
         _nodefault
     }
-}
+} }
 
 - (NSString *) id {
     return id_;
 
 - (NSString *) id {
     return id_;