Cocoa: add missing auto release pools
authorRichard Moe Gustavsen <richard.gustavsen@digia.com>
Tue, 25 Sep 2012 08:57:21 +0000 (10:57 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Tue, 2 Oct 2012 11:22:49 +0000 (13:22 +0200)
Got complaints while running file dialog example. Adding in
the release pools will fix the problem.

Change-Id: Ib33fddd5aedfc3e4aaa6fdd8995bbc8c8098267c
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm

index 872a5cb..48be019 100644 (file)
@@ -60,6 +60,7 @@
 #include <qvarlengtharray.h>
 #include <stdlib.h>
 #include <qabstracteventdispatcher.h>
+#include "qcocoaautoreleasepool.h"
 
 #include <qpa/qplatformnativeinterface.h>
 
@@ -526,6 +527,7 @@ QCocoaFileDialogHelper::~QCocoaFileDialogHelper()
 {
     if (!mDelegate)
         return;
+    QCocoaAutoReleasePool pool;
     [reinterpret_cast<QT_MANGLE_NAMESPACE(QNSOpenSavePanelDelegate) *>(mDelegate) release];
     mDelegate = 0;
 }
@@ -641,6 +643,7 @@ void QCocoaFileDialogHelper::createNSOpenSavePanelDelegate()
 {
     if (mDelegate)
         return;
+    QCocoaAutoReleasePool pool;
     const SharedPointerFileDialogOptions &opts = options();
     const QStringList selectedFiles = opts->initiallySelectedFiles();
     const QString directory = opts->initialDirectory();
@@ -688,6 +691,7 @@ void QCocoaFileDialogHelper::exec()
     // QEventLoop has been interrupted, and the second-most event loop has not
     // yet been reactivated (regardless if [NSApp run] is still on the stack)),
     // showing a native modal dialog will fail.
+    QCocoaAutoReleasePool pool;
     QT_MANGLE_NAMESPACE(QNSOpenSavePanelDelegate) *delegate = static_cast<QT_MANGLE_NAMESPACE(QNSOpenSavePanelDelegate) *>(mDelegate);
     if ([delegate runApplicationModalPanel])
         emit accept();