aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objc/pop
diff options
context:
space:
mode:
authorGravatar Hoa V. Dinh <dinh.viet.hoa@gmail.com>2013-06-28 09:58:19 -0700
committerGravatar Hoa V. Dinh <dinh.viet.hoa@gmail.com>2013-06-28 09:58:19 -0700
commitde51dd02d4c16d5c6bc89a2fe0e49ffda79f2a33 (patch)
tree3e0c9bc200fa096f37184746c65ab917459f656c /src/objc/pop
parent29bc4a2eac587c83f1de1ecf5ee5dc2299452966 (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.mm2
-rw-r--r--src/objc/pop/MCOPOPFetchMessageOperation.mm2
-rw-r--r--src/objc/pop/MCOPOPFetchMessagesOperation.mm2
-rw-r--r--src/objc/pop/MCOPOPOperation.mm2
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