diff options
author | Hoa V. Dinh <dinh.viet.hoa@gmail.com> | 2013-06-28 09:58:19 -0700 |
---|---|---|
committer | Hoa V. Dinh <dinh.viet.hoa@gmail.com> | 2013-06-28 09:58:19 -0700 |
commit | de51dd02d4c16d5c6bc89a2fe0e49ffda79f2a33 (patch) | |
tree | 3e0c9bc200fa096f37184746c65ab917459f656c /src/objc/pop | |
parent | 29bc4a2eac587c83f1de1ecf5ee5dc2299452966 (diff) |
Fixed memory leak: operations were retained by the block they owned, which created a cycle reference.
Diffstat (limited to 'src/objc/pop')
-rw-r--r-- | src/objc/pop/MCOPOPFetchHeaderOperation.mm | 2 | ||||
-rw-r--r-- | src/objc/pop/MCOPOPFetchMessageOperation.mm | 2 | ||||
-rw-r--r-- | src/objc/pop/MCOPOPFetchMessagesOperation.mm | 2 | ||||
-rw-r--r-- | src/objc/pop/MCOPOPOperation.mm | 2 |
4 files changed, 8 insertions, 0 deletions
diff --git a/src/objc/pop/MCOPOPFetchHeaderOperation.mm b/src/objc/pop/MCOPOPFetchHeaderOperation.mm index 1d2c35c6..ab467a76 100644 --- a/src/objc/pop/MCOPOPFetchHeaderOperation.mm +++ b/src/objc/pop/MCOPOPFetchHeaderOperation.mm @@ -54,6 +54,8 @@ typedef void (^CompletionType)(NSError *error, MCOMessageHeader * header); } else { _completionBlock([NSError mco_errorWithErrorCode:op->error()], nil); } + [_completionBlock release]; + _completionBlock = nil; } @end diff --git a/src/objc/pop/MCOPOPFetchMessageOperation.mm b/src/objc/pop/MCOPOPFetchMessageOperation.mm index 40740961..02bad3ad 100644 --- a/src/objc/pop/MCOPOPFetchMessageOperation.mm +++ b/src/objc/pop/MCOPOPFetchMessageOperation.mm @@ -90,6 +90,8 @@ private: } else { _completionBlock([NSError mco_errorWithErrorCode:op->error()], nil); } + [_completionBlock release]; + _completionBlock = nil; } - (void) bodyProgress:(unsigned int)current maximum:(unsigned int)maximum diff --git a/src/objc/pop/MCOPOPFetchMessagesOperation.mm b/src/objc/pop/MCOPOPFetchMessagesOperation.mm index dcb35845..2fe9b31f 100644 --- a/src/objc/pop/MCOPOPFetchMessagesOperation.mm +++ b/src/objc/pop/MCOPOPFetchMessagesOperation.mm @@ -54,6 +54,8 @@ typedef void (^CompletionType)(NSError *error, NSArray * messages); } else { _completionBlock([NSError mco_errorWithErrorCode:op->error()], nil); } + [_completionBlock release]; + _completionBlock = nil; } diff --git a/src/objc/pop/MCOPOPOperation.mm b/src/objc/pop/MCOPOPOperation.mm index 9b58f84d..5f4d1f59 100644 --- a/src/objc/pop/MCOPOPOperation.mm +++ b/src/objc/pop/MCOPOPOperation.mm @@ -41,6 +41,8 @@ typedef void (^CompletionType)(NSError *error); NSError * error = [NSError mco_errorWithErrorCode:MCO_NATIVE_INSTANCE->error()]; _completionBlock(error); + [_completionBlock release]; + _completionBlock = nil; } - (void) setSession:(MCOPOPSession *)session |