diff options
Diffstat (limited to 'src/objc/rfc822/MCOMessageParser.mm')
-rw-r--r-- | src/objc/rfc822/MCOMessageParser.mm | 10 |
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; } |