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

Reply via email to