]> git.mxchange.org Git - flightgear.git/commitdiff
Add an auto-release pool wrapper to the Cocoa code
authorJames Turner <zakalawe@mac.com>
Wed, 2 May 2012 20:24:44 +0000 (21:24 +0100)
committerJames Turner <zakalawe@mac.com>
Wed, 2 May 2012 20:24:44 +0000 (21:24 +0100)
Hopefully this will address some warnings seen on Mac

src/GUI/FGCocoaMenuBar.mm

index 916195f4a44ae1870bcaddd81d8d387c99ccfe2e..451fe5ed1938fbc6b273b7811072b2388eb0297e 100644 (file)
@@ -110,6 +110,23 @@ static void setItemShortcutFromString(NSMenuItem* item, const string& s)
 }
 
 namespace {
+  class CocoaAutoreleasePool
+  {
+  public:
+    CocoaAutoreleasePool()
+    {
+      pool = [[NSAutoreleasePool alloc] init];
+    }
+    
+    ~CocoaAutoreleasePool()
+    {
+      [pool release];
+    }
+    
+  private:
+    NSAutoreleasePool* pool;
+  };
+  
   class CocoaEnabledListener : public SGPropertyChangeListener
   {
   public:
@@ -120,6 +137,7 @@ namespace {
     
     virtual void valueChanged(SGPropertyNode *node) 
     {
+      CocoaAutoreleasePool pool;
       BOOL b = node->getBoolValue();
       [item setEnabled:b];
     }
@@ -137,6 +155,7 @@ FGCocoaMenuBar::CocoaMenuBarPrivate::CocoaMenuBarPrivate()
   
 FGCocoaMenuBar::CocoaMenuBarPrivate::~CocoaMenuBarPrivate()
 {
+  CocoaAutoreleasePool pool;
   [delegate release];
 }
   
@@ -227,6 +246,8 @@ FGCocoaMenuBar::~FGCocoaMenuBar()
 
 void FGCocoaMenuBar::init()
 {
+  CocoaAutoreleasePool pool;
+  
   NSMenu* mainBar = [[NSApplication sharedApplication] mainMenu];
   SGPropertyNode_ptr props = fgGetNode("/sim/menubar/default",true);