Fjalapeno has uploaded a new change for review. https://gerrit.wikimedia.org/r/215372
Change subject: Fix Bug: T99123 - was removing an object for a nil key, now checking for nil. ...................................................................... Fix Bug: T99123 - was removing an object for a nil key, now checking for nil. Also, casts the fetcher object to make sure it is retained and checking by pointer address instead of using isEqual, which isn't implemented in fetchers. Change-Id: I26fe018d479e30eeabb1eeec4237176a89de18fd --- M Wikipedia/Networking/Fetchers/SavedArticlesFetcher.m 1 file changed, 20 insertions(+), 16 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/apps/ios/wikipedia refs/changes/72/215372/1 diff --git a/Wikipedia/Networking/Fetchers/SavedArticlesFetcher.m b/Wikipedia/Networking/Fetchers/SavedArticlesFetcher.m index e2f4a77..def23de 100644 --- a/Wikipedia/Networking/Fetchers/SavedArticlesFetcher.m +++ b/Wikipedia/Networking/Fetchers/SavedArticlesFetcher.m @@ -90,38 +90,42 @@ } - (void)fetchFinished:(id)sender fetchedData:(id)fetchedData status:(FetchFinalStatus)status error:(NSError*)error { + ArticleFetcher* fetcher = sender; + dispatch_async(self.accessQueue, ^{ __block id completedFetcherKey; [self.fetchersByArticleTitle enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL* stop) { - if ([sender isEqual:obj]) { + if (fetcher == obj) { completedFetcherKey = key; *stop = YES; } }]; - if (error) { - self.errorsByArticleTitle[completedFetcherKey] = error; - } + if (completedFetcherKey) { + if (error) { + self.errorsByArticleTitle[completedFetcherKey] = error; + } - [self.fetchersByArticleTitle removeObjectForKey:completedFetcherKey]; + [self.fetchersByArticleTitle removeObjectForKey:completedFetcherKey]; - MWKArticle* article = [self.dataStore articleWithTitle:completedFetcherKey]; + MWKArticle* article = [self.dataStore articleWithTitle:completedFetcherKey]; - [self.fetchedArticles addObject:article]; + [self.fetchedArticles addObject:article]; - CGFloat progress = [self progress]; + CGFloat progress = [self progress]; - dispatch_async(dispatch_get_main_queue(), ^{ - [self.fetchFinishedDelegate savedArticlesFetcher:self didFetchArticle:article progress:progress status:status error:error]; + dispatch_async(dispatch_get_main_queue(), ^{ + [self.fetchFinishedDelegate savedArticlesFetcher:self didFetchArticle:article progress:progress status:status error:error]; - dispatch_async(self.accessQueue, ^{ - if ([self.fetchersByArticleTitle count] == 0) { - [self notifyDelegate]; - [[self class] setSharedInstance:nil]; - } + dispatch_async(self.accessQueue, ^{ + if ([self.fetchersByArticleTitle count] == 0) { + [self notifyDelegate]; + [[self class] setSharedInstance:nil]; + } + }); }); - }); + } }); } -- To view, visit https://gerrit.wikimedia.org/r/215372 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I26fe018d479e30eeabb1eeec4237176a89de18fd Gerrit-PatchSet: 1 Gerrit-Project: apps/ios/wikipedia Gerrit-Branch: master Gerrit-Owner: Fjalapeno <cfl...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits