aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--build-mac/mailcore2.xcodeproj/project.pbxproj12
-rw-r--r--example/ios/iOS UI Test/iOS UI Test.xcodeproj/project.pbxproj6
-rw-r--r--example/ios/iOS UI Test/iOS UI Test/Application.h13
-rw-r--r--example/ios/iOS UI Test/iOS UI Test/Application.mm20
-rw-r--r--example/ios/iOS UI Test/iOS UI Test/main.mm5
-rw-r--r--example/mac/macExample/macExample.xcodeproj/project.pbxproj6
-rw-r--r--example/mac/macExample/macExample/MCTApplication.h13
-rw-r--r--example/mac/macExample/macExample/MCTApplication.mm22
-rw-r--r--example/mac/macExample/macExample/macExample-Info.plist2
-rw-r--r--example/mac/macExample/macExample/main.mm4
-rw-r--r--src/core/basetypes/MCAutoreleasePool.cc8
-rw-r--r--src/core/basetypes/MCAutoreleasePool.h5
-rw-r--r--src/core/basetypes/MCAutoreleasePoolMac.mm24
-rw-r--r--src/core/basetypes/MCObject.cc2
-rw-r--r--src/core/basetypes/MCObjectMac.mm22
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;
+}