forked from qt-creator/qt-creator
Debugger: Fix object leakage on shutdown and heap-use-after-free.
Task-number: QTCREATORBUG-15938 Change-Id: I437756705c33730398a129651fabe34c92334656 Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
This commit is contained in:
@@ -61,7 +61,7 @@ public:
|
||||
Qt::DockWidgetArea area = Qt::BottomDockWidgetArea);
|
||||
|
||||
QByteArray dockId;
|
||||
QWidget *widget = 0;
|
||||
QPointer<QWidget> widget;
|
||||
QByteArray anchorDockId;
|
||||
OperationType operationType;
|
||||
bool visibleByDefault;
|
||||
@@ -115,14 +115,12 @@ public:
|
||||
void resetCurrentPerspective();
|
||||
void restorePerspective(const QByteArray &perspectiveId);
|
||||
|
||||
void finalizeSetup(Core::IMode *mode, QWidget *central = 0);
|
||||
void finalizeSetup();
|
||||
|
||||
void showStatusMessage(const QString &message, int timeoutMS);
|
||||
QDockWidget *dockWidget(const QByteArray &dockId) const;
|
||||
QByteArray currentPerspective() const { return m_currentPerspectiveId; }
|
||||
|
||||
QWidget *modeWindow();
|
||||
|
||||
private:
|
||||
QDockWidget *registerDockWidget(const QByteArray &dockId, QWidget *widget);
|
||||
void loadPerspectiveHelper(const QByteArray &perspectiveId, bool fromStoredSettings = true);
|
||||
@@ -136,14 +134,10 @@ private:
|
||||
QHash<QByteArray, QDockWidget *> m_dockForDockId;
|
||||
QHash<QByteArray, QWidget *> m_toolbarForPerspectiveId;
|
||||
QHash<QByteArray, Perspective> m_perspectiveForPerspectiveId;
|
||||
|
||||
// list of dock widgets to prevent memory leak
|
||||
typedef QPointer<QDockWidget> DockPtr;
|
||||
QList<DockPtr> m_dockWidgets;
|
||||
|
||||
QWidget *m_modeWindow = 0;
|
||||
};
|
||||
|
||||
QWidget *createModeWindow(Core::IMode *mode, DebuggerMainWindow *mainWindow, QWidget *central);
|
||||
|
||||
} // Utils
|
||||
|
||||
#endif // DEBUGGERMAINWINDOW_H
|
||||
|
||||
Reference in New Issue
Block a user