summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimur Pocheptsov <timur.pocheptsov@theqtcompany.com>2016-05-06 13:49:01 +0200
committerTimur Pocheptsov <timur.pocheptsov@theqtcompany.com>2016-05-10 10:36:30 +0000
commit4e0b76d810fe370f6a5c6e0242c487f026e809d3 (patch)
treed91c7bf61761bc100b9d23f31ba00f9ffad64205
parent45bec92e7a91890dbd40d8d5d310d41a617401e4 (diff)
Cocoa integration - avoid dangling menuitem pointer
Since QCocoaMenu can live longer than its m_attachedItem pointer, this pointer is becoming invalid after QCocoaMenuItem deleted (and its 'm_native' was released). Task-number: QTBUG-53251 Change-Id: I6d97b75b2c09e2443cd21415c5db94206d5d89ce Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
-rw-r--r--src/plugins/platforms/cocoa/qcocoamenuitem.mm2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoamenuitem.mm b/src/plugins/platforms/cocoa/qcocoamenuitem.mm
index 0f422843e0..49f3da48c2 100644
--- a/src/plugins/platforms/cocoa/qcocoamenuitem.mm
+++ b/src/plugins/platforms/cocoa/qcocoamenuitem.mm
@@ -110,6 +110,8 @@ QCocoaMenuItem::~QCocoaMenuItem()
if (m_merged) {
[m_native setHidden:YES];
} else {
+ if (m_menu && m_menu->attachedItem() == m_native)
+ m_menu->setAttachedItem(nil);
[m_native release];
}