From 4e0b76d810fe370f6a5c6e0242c487f026e809d3 Mon Sep 17 00:00:00 2001
From: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Date: Fri, 6 May 2016 13:49:01 +0200
Subject: [PATCH] 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>
---
 src/plugins/platforms/cocoa/qcocoamenuitem.mm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/plugins/platforms/cocoa/qcocoamenuitem.mm b/src/plugins/platforms/cocoa/qcocoamenuitem.mm
index 0f422843e01..49f3da48c21 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];
     }
 
-- 
GitLab