From 28f3e8ba9cf72aa08b76c2f08645c5bc3545274a Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Fri, 12 Feb 2016 12:07:23 -0800 Subject: [PATCH] Don't leave user data pointers around in objects after deletion --- libraries/ui/src/VrMenu.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libraries/ui/src/VrMenu.cpp b/libraries/ui/src/VrMenu.cpp index 2006b22860..d1ef660532 100644 --- a/libraries/ui/src/VrMenu.cpp +++ b/libraries/ui/src/VrMenu.cpp @@ -28,6 +28,11 @@ public: init(menu, qmlObject); } + ~MenuUserData() { + _widget->setUserData(USER_DATA_ID, nullptr); + _qml->setUserData(USER_DATA_ID, nullptr); + } + const QUuid uuid{ QUuid::createUuid() }; static MenuUserData* forObject(QObject* object) { @@ -37,12 +42,17 @@ public: private: MenuUserData(const MenuUserData&); void init(QObject* widgetObject, QObject* qmlObject) { + _widget = widgetObject; + _qml = qmlObject; widgetObject->setUserData(USER_DATA_ID, this); qmlObject->setUserData(USER_DATA_ID, this); qmlObject->setObjectName(uuid.toString()); // Make sure we can find it again in the future Q_ASSERT(VrMenu::_instance->findMenuObject(uuid.toString())); } + + QObject* _widget { nullptr }; + QObject* _qml { nullptr }; }; const int MenuUserData::USER_DATA_ID = QObject::registerUserData();