CocoaPlugin: add missing auto release pools

Add auto release pools to the entry functions of the plugin
that leads to mem leaks. By adding them as early as possible
in the callstack, we avoid creating to many pools

Change-Id: I715e06bd8d3280c6877340fc724eb1afbf804ae1
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@nokia.com>
bb10
Richard Moe Gustavsen 2012-09-06 12:20:34 +02:00 committed by Qt by Nokia
parent 98e1170086
commit 287255c03a
2 changed files with 5 additions and 0 deletions

View File

@ -109,6 +109,7 @@ QCocoaMenu::QCocoaMenu() :
QCocoaMenu::~QCocoaMenu()
{
QCocoaAutoReleasePool pool;
[m_nativeItem setSubmenu:nil];
[m_nativeMenu release];
[m_delegate release];
@ -125,6 +126,7 @@ void QCocoaMenu::setText(const QString &text)
void QCocoaMenu::insertMenuItem(QPlatformMenuItem *menuItem, QPlatformMenuItem *before)
{
QCocoaAutoReleasePool pool;
QCocoaMenuItem *cocoaItem = static_cast<QCocoaMenuItem *>(menuItem);
QCocoaMenuItem *beforeItem = static_cast<QCocoaMenuItem *>(before);
@ -168,6 +170,7 @@ void QCocoaMenu::insertNative(QCocoaMenuItem *item, QCocoaMenuItem *beforeItem)
void QCocoaMenu::removeMenuItem(QPlatformMenuItem *menuItem)
{
QCocoaAutoReleasePool pool;
QCocoaMenuItem *cocoaItem = static_cast<QCocoaMenuItem *>(menuItem);
Q_ASSERT(m_menuItems.contains(cocoaItem));
m_menuItems.removeOne(cocoaItem);
@ -187,6 +190,7 @@ QCocoaMenuItem *QCocoaMenu::itemOrNull(int index) const
void QCocoaMenu::syncMenuItem(QPlatformMenuItem *menuItem)
{
QCocoaAutoReleasePool pool;
QCocoaMenuItem *cocoaItem = static_cast<QCocoaMenuItem *>(menuItem);
Q_ASSERT(m_menuItems.contains(cocoaItem));

View File

@ -83,6 +83,7 @@ QCocoaMenuBar::~QCocoaMenuBar()
void QCocoaMenuBar::insertMenu(QPlatformMenu *platformMenu, QPlatformMenu *before)
{
QCocoaAutoReleasePool pool;
QCocoaMenu *menu = static_cast<QCocoaMenu *>(platformMenu);
QCocoaMenu *beforeMenu = static_cast<QCocoaMenu *>(before);
#ifdef QT_COCOA_ENABLE_MENU_DEBUG