]> git.saurik.com Git - wxWidgets.git/commitdiff
Provide NSAutoreleasePool instances during initialization
authorDavid Elliott <dfe@tgwbd.org>
Thu, 3 Jul 2003 15:36:09 +0000 (15:36 +0000)
committerDavid Elliott <dfe@tgwbd.org>
Thu, 3 Jul 2003 15:36:09 +0000 (15:36 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21608 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/cocoa/app.h
src/cocoa/app.mm

index 7e1a3d832da4c99d1e9c215d9888c07ceb1717eb..ea155949a90fe9578206fdcb3060b922b7e860a0 100644 (file)
@@ -65,6 +65,8 @@ public:
     
     virtual bool Initialize(int& argc, wxChar **argv);
     virtual void CleanUp();
+    virtual bool CallOnInit();
+
     
     virtual bool OnInit();
     virtual bool OnInitGui();
index 62574e7a0e29839f032ef800ba251ca3c477d1d6..8f514adc440e6b83553e38b0b98e1c70b642a2ca 100644 (file)
@@ -39,6 +39,7 @@
 #import <AppKit/NSApplication.h>
 #import <Foundation/NSRunLoop.h>
 #import <Foundation/NSArray.h>
+#import <Foundation/NSAutoreleasePool.h>
 
 // ----------------------------------------------------------------------------
 // globals
@@ -107,6 +108,21 @@ wxPoseAsInitializer *wxPoseAsInitializer::sm_first = NULL;
 @end // wxPoserNSApplication
 WX_IMPLEMENT_POSER(wxPoserNSApplication);
 
+class wxAutoNSAutoreleasePool
+{
+public:
+    wxAutoNSAutoreleasePool()
+    {
+        m_pool = [[NSAutoreleasePool alloc] init];
+    }
+    ~wxAutoNSAutoreleasePool()
+    {
+        [m_pool release];
+    }
+protected:
+    NSAutoreleasePool *m_pool;
+};
+
 // ============================================================================
 // functions
 // ============================================================================
@@ -141,6 +157,7 @@ END_EVENT_TABLE()
 
 bool wxApp::Initialize(int& argc, wxChar **argv)
 {
+    wxAutoNSAutoreleasePool pool;
     // Mac OS X passes a process serial number command line argument when
     // the application is launched from the Finder. This argument must be
     // removed from the command line arguments before being handled by the
@@ -199,6 +216,7 @@ void wxApp::CocoaInstallIdleHandler()
 
 bool wxApp::OnInitGui()
 {
+    wxAutoNSAutoreleasePool pool;
     if(!wxAppBase::OnInitGui())
         return FALSE;
 
@@ -214,6 +232,12 @@ bool wxApp::OnInitGui()
     return TRUE;
 }
 
+bool wxApp::CallOnInit()
+{
+    wxAutoNSAutoreleasePool pool;
+    return OnInit();
+}
+
 bool wxApp::OnInit()
 {
     if(!wxAppBase::OnInit())