diff options
author | Jay Freeman (saurik) <saurik@saurik.com> | 2011-03-08 03:00:15 -0800 |
---|---|---|
committer | Jay Freeman (saurik) <saurik@saurik.com> | 2011-03-08 03:00:15 -0800 |
commit | ae60e2c13990f215c0fb65f195321f98f384c64f (patch) | |
tree | b5b82b9254eb84ddcc2bfab0b2ce6dc945dfb57d | |
parent | 35ee854810ce90c8418e3072cfb28e246fdba013 (diff) |
Fix subtle packages_ damage to yield.
-rw-r--r-- | MobileCydia.mm | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/MobileCydia.mm b/MobileCydia.mm index d741dda..84b2e0e 100644 --- a/MobileCydia.mm +++ b/MobileCydia.mm @@ -5896,6 +5896,8 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { return; } + NSArray *packages; + if ([self shouldYield]) { do { UIProgressHUD *hud; @@ -5908,7 +5910,7 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { } reloading_ = 1; - packages_ = [self yieldToSelector:@selector(_reloadPackages)]; + packages = [self yieldToSelector:@selector(_reloadPackages)]; if (hud != nil) [delegate_ removeProgressHUD:hud]; @@ -5916,9 +5918,11 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { reloading_ = 0; } else { - packages_ = [self _reloadPackages]; + packages = [self _reloadPackages]; } + packages_ = packages; + [indices_ removeAllObjects]; [sections_ removeAllObjects]; @@ -7126,21 +7130,24 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { } } - (void) _reloadData { + NSArray *packages; + reload: if (true) { UIProgressHUD *hud([delegate_ addProgressHUD]); [hud setText:UCLocalize("LOADING")]; //NSLog(@"HUD:%@::%@", delegate_, hud); - packages_ = [self yieldToSelector:@selector(_reloadPackages)]; + packages = [self yieldToSelector:@selector(_reloadPackages)]; [delegate_ removeProgressHUD:hud]; } else { - packages_ = [self _reloadPackages]; + packages = [self _reloadPackages]; } @synchronized (database_) { if (era_ != [database_ era]) goto reload; + packages_ = packages; [sections_ removeAllObjects]; Section *upgradable = [[[Section alloc] initWithName:UCLocalize("AVAILABLE_UPGRADES") localize:NO] autorelease]; |