diff options
-rw-r--r-- | build-mac/mailcore2.xcodeproj/project.pbxproj | 12 | ||||
-rw-r--r-- | example/ios/iOS UI Test/iOS UI Test.xcodeproj/project.pbxproj | 6 | ||||
-rw-r--r-- | example/ios/iOS UI Test/iOS UI Test/Application.h | 13 | ||||
-rw-r--r-- | example/ios/iOS UI Test/iOS UI Test/Application.mm | 20 | ||||
-rw-r--r-- | example/ios/iOS UI Test/iOS UI Test/main.mm | 5 | ||||
-rw-r--r-- | example/mac/macExample/macExample.xcodeproj/project.pbxproj | 6 | ||||
-rw-r--r-- | example/mac/macExample/macExample/MCTApplication.h | 13 | ||||
-rw-r--r-- | example/mac/macExample/macExample/MCTApplication.mm | 22 | ||||
-rw-r--r-- | example/mac/macExample/macExample/macExample-Info.plist | 2 | ||||
-rw-r--r-- | example/mac/macExample/macExample/main.mm | 4 | ||||
-rw-r--r-- | src/core/basetypes/MCAutoreleasePool.cc | 8 | ||||
-rw-r--r-- | src/core/basetypes/MCAutoreleasePool.h | 5 | ||||
-rw-r--r-- | src/core/basetypes/MCAutoreleasePoolMac.mm | 24 | ||||
-rw-r--r-- | src/core/basetypes/MCObject.cc | 2 | ||||
-rw-r--r-- | src/core/basetypes/MCObjectMac.mm | 22 |
15 files changed, 77 insertions, 87 deletions
diff --git a/build-mac/mailcore2.xcodeproj/project.pbxproj b/build-mac/mailcore2.xcodeproj/project.pbxproj index 1ebaf7aa..ea82454f 100644 --- a/build-mac/mailcore2.xcodeproj/project.pbxproj +++ b/build-mac/mailcore2.xcodeproj/project.pbxproj @@ -232,6 +232,10 @@ C64EA82C16A2A08B00778456 /* MCIMAPFetchNamespaceOperation.cc in Sources */ = {isa = PBXBuildFile; fileRef = C64EA82A16A29FAA00778456 /* MCIMAPFetchNamespaceOperation.cc */; }; C64FF39116B3C13000F8C162 /* MCOObjectWrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = C64FF39016B3C13000F8C162 /* MCOObjectWrapper.mm */; }; C64FF39316B3C25200F8C162 /* MCOObjectWrapper.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = C64FF38F16B3C13000F8C162 /* MCOObjectWrapper.h */; }; + C668E2C71735C8D500A2BB47 /* MCObjectMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = C668E2C51735C8D500A2BB47 /* MCObjectMac.mm */; }; + C668E2C81735C8D500A2BB47 /* MCObjectMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = C668E2C51735C8D500A2BB47 /* MCObjectMac.mm */; }; + C668E2CC1735CB8900A2BB47 /* MCAutoreleasePoolMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = C668E2CA1735CB8900A2BB47 /* MCAutoreleasePoolMac.mm */; }; + C668E2CD1735CB8900A2BB47 /* MCAutoreleasePoolMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = C668E2CA1735CB8900A2BB47 /* MCAutoreleasePoolMac.mm */; }; C6A81B931706840C00882C15 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6A81B921706840C00882C15 /* UIKit.framework */; }; C6A81B941706840C00882C15 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C64EA78F169F259200778456 /* Foundation.framework */; }; C6A81B961706840C00882C15 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6A81B951706840C00882C15 /* CoreGraphics.framework */; }; @@ -1261,6 +1265,8 @@ C64EA82B16A2A01400778456 /* MCIMAPFetchNamespaceOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCIMAPFetchNamespaceOperation.h; sourceTree = "<group>"; }; C64FF38F16B3C13000F8C162 /* MCOObjectWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCOObjectWrapper.h; sourceTree = "<group>"; }; C64FF39016B3C13000F8C162 /* MCOObjectWrapper.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MCOObjectWrapper.mm; sourceTree = "<group>"; }; + C668E2C51735C8D500A2BB47 /* MCObjectMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MCObjectMac.mm; sourceTree = "<group>"; }; + C668E2CA1735CB8900A2BB47 /* MCAutoreleasePoolMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MCAutoreleasePoolMac.mm; sourceTree = "<group>"; }; C6A81B911706840C00882C15 /* test-ios.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "test-ios.app"; sourceTree = BUILT_PRODUCTS_DIR; }; C6A81B921706840C00882C15 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; C6A81B951706840C00882C15 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; @@ -1699,6 +1705,7 @@ children = ( C64EA6A2169E847800778456 /* MCAutoreleasePool.cc */, C64EA6A3169E847800778456 /* MCAutoreleasePool.h */, + C668E2CA1735CB8900A2BB47 /* MCAutoreleasePoolMac.mm */, C64EA6A4169E847800778456 /* MCBaseTypes.h */, C64EA6A5169E847800778456 /* MCArray.cc */, C64EA6A6169E847800778456 /* MCArray.h */, @@ -1722,6 +1729,7 @@ C6D6F953171E5CB8006F5B28 /* MCNull.h */, C64EA6B1169E847800778456 /* MCObject.cc */, C64EA6B2169E847800778456 /* MCObject.h */, + C668E2C51735C8D500A2BB47 /* MCObjectMac.mm */, C64EA6B3169E847800778456 /* MCRange.cc */, C64EA6B4169E847800778456 /* MCRange.h */, C64EA6B5169E847800778456 /* MCSet.cc */, @@ -2378,6 +2386,8 @@ 84AF9E8C172DBE4100E60AA3 /* MCONetService.mm in Sources */, 843EE40B172DD5B900C882AA /* MCOMailProvidersManager.mm in Sources */, 843EE40F172DD71300C882AA /* MCMailProvidersManager.cc in Sources */, + C668E2C71735C8D500A2BB47 /* MCObjectMac.mm in Sources */, + C668E2CC1735CB8900A2BB47 /* MCAutoreleasePoolMac.mm in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2548,6 +2558,8 @@ 84AF9E8D172DBE4100E60AA3 /* MCONetService.mm in Sources */, 843EE40C172DD5B900C882AA /* MCOMailProvidersManager.mm in Sources */, 843EE410172DD71300C882AA /* MCMailProvidersManager.cc in Sources */, + C668E2C81735C8D500A2BB47 /* MCObjectMac.mm in Sources */, + C668E2CD1735CB8900A2BB47 /* MCAutoreleasePoolMac.mm in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/example/ios/iOS UI Test/iOS UI Test.xcodeproj/project.pbxproj b/example/ios/iOS UI Test/iOS UI Test.xcodeproj/project.pbxproj index cc5a6ae7..bf9f8cbb 100644 --- a/example/ios/iOS UI Test/iOS UI Test.xcodeproj/project.pbxproj +++ b/example/ios/iOS UI Test/iOS UI Test.xcodeproj/project.pbxproj @@ -10,7 +10,6 @@ AB665BCD17134336007F2151 /* FXKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = AB665BCB17134336007F2151 /* FXKeychain.m */; }; AB7BA446171389CC00104953 /* libMailCore-ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AB7BA43D1713898B00104953 /* libMailCore-ios.a */; }; AB7BA4481713913F00104953 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB7BA4471713913F00104953 /* CFNetwork.framework */; }; - AB7BA4511713CE3300104953 /* Application.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB7BA4501713CE3300104953 /* Application.mm */; }; AB9EAE06170368F000D750C7 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB9EAE05170368F000D750C7 /* UIKit.framework */; }; AB9EAE08170368F000D750C7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB9EAE07170368F000D750C7 /* Foundation.framework */; }; AB9EAE0A170368F000D750C7 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB9EAE09170368F000D750C7 /* CoreGraphics.framework */; }; @@ -81,8 +80,6 @@ AB665BCC17134336007F2151 /* FXKeychain_LICENCE.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = FXKeychain_LICENCE.md; sourceTree = "<group>"; }; AB7BA4321713898B00104953 /* mailcore2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = mailcore2.xcodeproj; path = "../../../../build-mac/mailcore2.xcodeproj"; sourceTree = "<group>"; }; AB7BA4471713913F00104953 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; }; - AB7BA44F1713CE3300104953 /* Application.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Application.h; sourceTree = "<group>"; }; - AB7BA4501713CE3300104953 /* Application.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = Application.mm; sourceTree = "<group>"; }; AB9EAE02170368F000D750C7 /* iOS UI Test.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "iOS UI Test.app"; sourceTree = BUILT_PRODUCTS_DIR; }; AB9EAE05170368F000D750C7 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; AB9EAE07170368F000D750C7 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; @@ -185,8 +182,6 @@ children = ( AB7BA4321713898B00104953 /* mailcore2.xcodeproj */, AB9EAE11170368F000D750C7 /* main.mm */, - AB7BA44F1713CE3300104953 /* Application.h */, - AB7BA4501713CE3300104953 /* Application.mm */, AB9EAE14170368F000D750C7 /* AppDelegate.h */, AB9EAE15170368F000D750C7 /* AppDelegate.m */, AB9EAE1D170368F000D750C7 /* MainStoryboard.storyboard */, @@ -337,7 +332,6 @@ AB9EAE22170368F000D750C7 /* MasterViewController.m in Sources */, AB9EAE3617036FD700D750C7 /* SettingsViewController.m in Sources */, AB665BCD17134336007F2151 /* FXKeychain.m in Sources */, - AB7BA4511713CE3300104953 /* Application.mm in Sources */, B12AAA3317322654003551C7 /* MCOCIDURLProtocol.mm in Sources */, B12AAA3417322654003551C7 /* MCOMessageView.mm in Sources */, B12AAA3517322654003551C7 /* MCTMsgViewController.m in Sources */, diff --git a/example/ios/iOS UI Test/iOS UI Test/Application.h b/example/ios/iOS UI Test/iOS UI Test/Application.h deleted file mode 100644 index a0c525a6..00000000 --- a/example/ios/iOS UI Test/iOS UI Test/Application.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// Application.h -// iOS UI Test -// -// Created by Jonathan Willing on 4/8/13. -// Copyright (c) 2013 AppJon. All rights reserved. -// - -#import <UIKit/UIKit.h> - -@interface Application : UIApplication - -@end diff --git a/example/ios/iOS UI Test/iOS UI Test/Application.mm b/example/ios/iOS UI Test/iOS UI Test/Application.mm deleted file mode 100644 index 48185d5b..00000000 --- a/example/ios/iOS UI Test/iOS UI Test/Application.mm +++ /dev/null @@ -1,20 +0,0 @@ -// -// Application.mm -// iOS UI Test -// -// Created by Jonathan Willing on 4/8/13. -// Copyright (c) 2013 AppJon. All rights reserved. -// - -#import "Application.h" -#import <MailCore/MailCore.h> - -@implementation Application - -- (void)sendEvent:(UIEvent *)event { - mailcore::AutoreleasePool *pool = new mailcore::AutoreleasePool(); - [super sendEvent:event]; - pool->release(); -} - -@end diff --git a/example/ios/iOS UI Test/iOS UI Test/main.mm b/example/ios/iOS UI Test/iOS UI Test/main.mm index 34793ec3..c9092479 100644 --- a/example/ios/iOS UI Test/iOS UI Test/main.mm +++ b/example/ios/iOS UI Test/iOS UI Test/main.mm @@ -9,12 +9,9 @@ #import <UIKit/UIKit.h> #import "AppDelegate.h" -#import "Application.h" #import <MailCore/MailCore.h> int main(int argc, char *argv[]) { mailcore::logEnabled = false; - mailcore::AutoreleasePool *pool = new mailcore::AutoreleasePool(); - return UIApplicationMain(argc, argv, NSStringFromClass([Application class]), NSStringFromClass([AppDelegate class])); - pool->release(); + return UIApplicationMain(argc, argv, nil, @"AppDelegate"); } diff --git a/example/mac/macExample/macExample.xcodeproj/project.pbxproj b/example/mac/macExample/macExample.xcodeproj/project.pbxproj index e0c08c51..3513d61e 100644 --- a/example/mac/macExample/macExample.xcodeproj/project.pbxproj +++ b/example/mac/macExample/macExample.xcodeproj/project.pbxproj @@ -11,7 +11,6 @@ C6BD2873170BC5C500A91AC1 /* MCOCIDURLProtocol.mm in Sources */ = {isa = PBXBuildFile; fileRef = C6BD2870170BC5C500A91AC1 /* MCOCIDURLProtocol.mm */; }; C6BD2874170BC5C500A91AC1 /* MCOMessageView.mm in Sources */ = {isa = PBXBuildFile; fileRef = C6BD2872170BC5C500A91AC1 /* MCOMessageView.mm */; }; C6BD28B4170BDFE500A91AC1 /* MailCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6BD28B3170BDFE500A91AC1 /* MailCore.framework */; }; - C6BD28BA170C14C300A91AC1 /* MCTApplication.mm in Sources */ = {isa = PBXBuildFile; fileRef = C6BD28B9170C14C300A91AC1 /* MCTApplication.mm */; }; C6D42BB616ABB39A002BB4F9 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6D42BB516ABB39A002BB4F9 /* Cocoa.framework */; }; C6D42BC916ABB39A002BB4F9 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C6D42BC816ABB39A002BB4F9 /* AppDelegate.m */; }; C6D42BCC16ABB39A002BB4F9 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = C6D42BCA16ABB39A002BB4F9 /* MainMenu.xib */; }; @@ -72,8 +71,6 @@ C6BD2871170BC5C500A91AC1 /* MCOMessageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCOMessageView.h; sourceTree = "<group>"; }; C6BD2872170BC5C500A91AC1 /* MCOMessageView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MCOMessageView.mm; sourceTree = "<group>"; }; C6BD2877170BC8ED00A91AC1 /* mailcore2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = mailcore2.xcodeproj; path = "../../../build-mac/mailcore2.xcodeproj"; sourceTree = "<group>"; }; - C6BD28B8170C14C300A91AC1 /* MCTApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCTApplication.h; sourceTree = "<group>"; }; - C6BD28B9170C14C300A91AC1 /* MCTApplication.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MCTApplication.mm; sourceTree = "<group>"; }; C6D42BB116ABB39A002BB4F9 /* macExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = macExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; C6D42BB516ABB39A002BB4F9 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; C6D42BB816ABB39A002BB4F9 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; @@ -202,8 +199,6 @@ C6D42BE816ACF711002BB4F9 /* MCTMsgListViewController.m */, C6D42BEA16ACFE3F002BB4F9 /* MCTMsgViewController.h */, C6D42BEB16ACFE3F002BB4F9 /* MCTMsgViewController.m */, - C6BD28B8170C14C300A91AC1 /* MCTApplication.h */, - C6BD28B9170C14C300A91AC1 /* MCTApplication.mm */, ); path = macExample; sourceTree = "<group>"; @@ -330,7 +325,6 @@ C64FF38416AF97F400F8C162 /* main.mm in Sources */, C6BD2873170BC5C500A91AC1 /* MCOCIDURLProtocol.mm in Sources */, C6BD2874170BC5C500A91AC1 /* MCOMessageView.mm in Sources */, - C6BD28BA170C14C300A91AC1 /* MCTApplication.mm in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/example/mac/macExample/macExample/MCTApplication.h b/example/mac/macExample/macExample/MCTApplication.h deleted file mode 100644 index a919bc90..00000000 --- a/example/mac/macExample/macExample/MCTApplication.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// MCTApplication.h -// macExample -// -// Created by DINH Viêt Hoà on 4/3/13. -// Copyright (c) 2013 MailCore. All rights reserved. -// - -#import <Cocoa/Cocoa.h> - -@interface MCTApplication : NSApplication - -@end diff --git a/example/mac/macExample/macExample/MCTApplication.mm b/example/mac/macExample/macExample/MCTApplication.mm deleted file mode 100644 index f2c4c597..00000000 --- a/example/mac/macExample/macExample/MCTApplication.mm +++ /dev/null @@ -1,22 +0,0 @@ -// -// MCTApplication.m -// macExample -// -// Created by DINH Viêt Hoà on 4/3/13. -// Copyright (c) 2013 MailCore. All rights reserved. -// - -#import "MCTApplication.h" - -#import <mailcore/mailcore.h> - -@implementation MCTApplication - -- (void) sendEvent:(NSEvent *)theEvent -{ - mailcore::AutoreleasePool * pool = new mailcore::AutoreleasePool(); - [super sendEvent:theEvent]; - pool->release(); -} - -@end diff --git a/example/mac/macExample/macExample/macExample-Info.plist b/example/mac/macExample/macExample/macExample-Info.plist index cfc74c76..39e003f6 100644 --- a/example/mac/macExample/macExample/macExample-Info.plist +++ b/example/mac/macExample/macExample/macExample-Info.plist @@ -29,6 +29,6 @@ <key>NSMainNibFile</key> <string>MainMenu</string> <key>NSPrincipalClass</key> - <string>MCTApplication</string> + <string>NSApplication</string> </dict> </plist> diff --git a/example/mac/macExample/macExample/main.mm b/example/mac/macExample/macExample/main.mm index 9572234a..cdb19817 100644 --- a/example/mac/macExample/macExample/main.mm +++ b/example/mac/macExample/macExample/main.mm @@ -13,7 +13,7 @@ int main(int argc, char *argv[]) { u_setDataDirectory("/usr/local/share/icu"); - mailcore::AutoreleasePool * pool = new mailcore::AutoreleasePool(); + //mailcore::AutoreleasePool * pool = new mailcore::AutoreleasePool(); return NSApplicationMain(argc, (const char **)argv); - pool->release(); + //pool->release(); } diff --git a/src/core/basetypes/MCAutoreleasePool.cc b/src/core/basetypes/MCAutoreleasePool.cc index 80f3e1a4..8c351bdf 100644 --- a/src/core/basetypes/MCAutoreleasePool.cc +++ b/src/core/basetypes/MCAutoreleasePool.cc @@ -20,6 +20,10 @@ AutoreleasePool::AutoreleasePool() { mPoolObjects = carray_new(4); +#if __APPLE__ + mAppleAutoreleasePool = createAppleAutoreleasePool(); +#endif + unsigned int idx; carray * stack = createAutoreleasePoolStackIfNeeded(); carray_add(stack, this, &idx); @@ -27,6 +31,10 @@ AutoreleasePool::AutoreleasePool() AutoreleasePool::~AutoreleasePool() { +#if __APPLE__ + releaseAppleAutoreleasePool(mAppleAutoreleasePool); +#endif + carray * stack = createAutoreleasePoolStackIfNeeded(); carray_delete_slow(stack, carray_count(stack) - 1); diff --git a/src/core/basetypes/MCAutoreleasePool.h b/src/core/basetypes/MCAutoreleasePool.h index 0b0a9397..1ba4b5d6 100644 --- a/src/core/basetypes/MCAutoreleasePool.h +++ b/src/core/basetypes/MCAutoreleasePool.h @@ -30,6 +30,11 @@ namespace mailcore { static void initAutoreleasePoolStackKey(); static AutoreleasePool * currentAutoreleasePool(); virtual void add(Object * obj); +#ifdef __APPLE__ + void * mAppleAutoreleasePool; + static void * createAppleAutoreleasePool(); + static void releaseAppleAutoreleasePool(void * appleAutoreleasePool); +#endif }; } diff --git a/src/core/basetypes/MCAutoreleasePoolMac.mm b/src/core/basetypes/MCAutoreleasePoolMac.mm new file mode 100644 index 00000000..4fcc435c --- /dev/null +++ b/src/core/basetypes/MCAutoreleasePoolMac.mm @@ -0,0 +1,24 @@ +// +// MCAutoreleasePoolMac.mm +// mailcore2 +// +// Created by DINH Viêt Hoà on 5/4/13. +// Copyright (c) 2013 MailCore. All rights reserved. +// + +#include "MCAutoreleasePool.h" + +#import <Foundation/Foundation.h> + +using namespace mailcore; + +void * AutoreleasePool::createAppleAutoreleasePool() +{ + return [[NSAutoreleasePool alloc] init]; +} + +void AutoreleasePool::releaseAppleAutoreleasePool(void * appleAutoreleasePool) +{ + [(NSAutoreleasePool *) appleAutoreleasePool release]; +} + diff --git a/src/core/basetypes/MCObject.cc b/src/core/basetypes/MCObject.cc index 1665e1ee..32d51fc4 100644 --- a/src/core/basetypes/MCObject.cc +++ b/src/core/basetypes/MCObject.cc @@ -70,11 +70,13 @@ void Object::release() } } +#ifndef __APPLE__ Object * Object::autorelease() { AutoreleasePool::autorelease(this); return this; } +#endif String * Object::className() { diff --git a/src/core/basetypes/MCObjectMac.mm b/src/core/basetypes/MCObjectMac.mm new file mode 100644 index 00000000..3e07f1f3 --- /dev/null +++ b/src/core/basetypes/MCObjectMac.mm @@ -0,0 +1,22 @@ +// +// MCObjectMac.mm +// mailcore2 +// +// Created by DINH Viêt Hoà on 5/4/13. +// Copyright (c) 2013 MailCore. All rights reserved. +// + +#include "MCObject.h" + +#import <Foundation/Foundation.h> + +#include "MCOObjectWrapper.h" + +using namespace mailcore; + +Object * Object::autorelease() +{ + [MCOObjectWrapper objectWrapperWithObject:this]; + this->release(); + return this; +} |