dbusmenu: Don’t leave dangling pointers when menus are destroyed
Delete references from menu to its containing item, and vice versa. Fixes https://launchpad.net/bugs/1620937 Task-number: QTBUG-55966 Change-Id: I58f0f0a90184bee4b0466c28d91c670a34fa65a5 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>bb10
parent
63656dbed7
commit
5ca9631d3a
|
|
@ -60,6 +60,8 @@ QDBusPlatformMenuItem::QDBusPlatformMenuItem(quintptr tag)
|
|||
QDBusPlatformMenuItem::~QDBusPlatformMenuItem()
|
||||
{
|
||||
menuItemsByID.remove(m_dbusID);
|
||||
if (m_subMenu)
|
||||
static_cast<QDBusPlatformMenu *>(m_subMenu)->setContainingMenuItem(Q_NULLPTR);
|
||||
}
|
||||
|
||||
void QDBusPlatformMenuItem::setTag(quintptr tag)
|
||||
|
|
@ -162,6 +164,8 @@ QDBusPlatformMenu::QDBusPlatformMenu(quintptr tag)
|
|||
|
||||
QDBusPlatformMenu::~QDBusPlatformMenu()
|
||||
{
|
||||
if (m_containingMenuItem)
|
||||
m_containingMenuItem->setMenu(Q_NULLPTR);
|
||||
}
|
||||
|
||||
void QDBusPlatformMenu::insertMenuItem(QPlatformMenuItem *menuItem, QPlatformMenuItem *before)
|
||||
|
|
|
|||
Loading…
Reference in New Issue