From 8dfca2ee717289b334b7ec7a5a9cc9a3d8e9654a Mon Sep 17 00:00:00 2001 From: Joni Poikelin Date: Tue, 21 Feb 2023 13:26:28 +0200 Subject: Fix crash with removed menus MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pick-to: 6.5 6.4 6.2 Fixes: QTBUG-111388 Change-Id: I9c9f0ad5cc02293197d7e77eeeec3ffa9d72a4af Reviewed-by: Tor Arne Vestbø --- src/plugins/platforms/cocoa/qcocoamenubar.mm | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/plugins/platforms/cocoa/qcocoamenubar.mm') diff --git a/src/plugins/platforms/cocoa/qcocoamenubar.mm b/src/plugins/platforms/cocoa/qcocoamenubar.mm index 87eb3e1450..f46e5b3ed6 100644 --- a/src/plugins/platforms/cocoa/qcocoamenubar.mm +++ b/src/plugins/platforms/cocoa/qcocoamenubar.mm @@ -355,8 +355,11 @@ void QCocoaMenuBar::insertWindowMenu() QList QCocoaMenuBar::merged() const { QList r; - for (auto menu : std::as_const(m_menus)) + for (auto menu : std::as_const(m_menus)) { + if (!menu) + continue; r.append(menu->merged()); + } return r; } @@ -400,7 +403,7 @@ bool QCocoaMenuBar::shouldDisable(QCocoaWindow *active) const QPlatformMenu *QCocoaMenuBar::menuForTag(quintptr tag) const { for (auto menu : std::as_const(m_menus)) - if (menu->tag() == tag) + if (menu && menu->tag() == tag) return menu; return nullptr; @@ -408,10 +411,13 @@ QPlatformMenu *QCocoaMenuBar::menuForTag(quintptr tag) const NSMenuItem *QCocoaMenuBar::itemForRole(QPlatformMenuItem::MenuRole role) { - for (auto menu : std::as_const(m_menus)) - for (auto *item : menu->items()) - if (item->effectiveRole() == role) - return item->nsItem(); + for (auto menu : std::as_const(m_menus)) { + if (menu) { + for (auto *item : menu->items()) + if (item->effectiveRole() == role) + return item->nsItem(); + } + } return nil; } -- cgit v1.2.3