aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objc/rfc822/MCOMessageParser.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/objc/rfc822/MCOMessageParser.mm')
-rw-r--r--src/objc/rfc822/MCOMessageParser.mm10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/objc/rfc822/MCOMessageParser.mm b/src/objc/rfc822/MCOMessageParser.mm
index 5ff3db13..c3951d1d 100644
--- a/src/objc/rfc822/MCOMessageParser.mm
+++ b/src/objc/rfc822/MCOMessageParser.mm
@@ -142,6 +142,14 @@ private:
MCORegisterClass(self, &typeid(nativeType));
}
+- (id) copyWithZone:(NSZone *)zone
+{
+ nativeType * nativeObject = (nativeType *) [self mco_mcObject]->copy();
+ id result = [[self class] mco_objectWithMCObject:nativeObject];
+ MC_SAFE_RELEASE(nativeObject);
+ return [result retain];
+}
+
+ (id) mco_objectWithMCObject:(mailcore::Object *)object
{
mailcore::MessageParser * msg = (mailcore::MessageParser *) object;
@@ -158,7 +166,7 @@ private:
mailcore::MessageParser * message = new mailcore::MessageParser([data mco_mcData]);
self = [super initWithMCMessage:message];
_htmlRenderCallback = new MCOMessageParserRenderedCallback(self);
- message->release();
+ MC_SAFE_RELEASE(message);
return self;
}