From 775fa9b63521678ea16dde7b31f77125885cc752 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 21 May 2019 13:58:33 +0100 Subject: [PATCH] Disconnect item model before deleting RDTreeWidget/RDTreeView * This avoids odd races where some events might be fired mid-destruction and encounter the item model in an undefined state. --- qrenderdoc/Widgets/Extended/RDTreeView.cpp | 2 ++ qrenderdoc/Widgets/Extended/RDTreeWidget.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/qrenderdoc/Widgets/Extended/RDTreeView.cpp b/qrenderdoc/Widgets/Extended/RDTreeView.cpp index 93d888352..4a520de5c 100644 --- a/qrenderdoc/Widgets/Extended/RDTreeView.cpp +++ b/qrenderdoc/Widgets/Extended/RDTreeView.cpp @@ -131,6 +131,8 @@ RDTreeView::RDTreeView(QWidget *parent) : QTreeView(parent) RDTreeView::~RDTreeView() { + setModel(NULL); + delete m_ElidedTooltip; } diff --git a/qrenderdoc/Widgets/Extended/RDTreeWidget.cpp b/qrenderdoc/Widgets/Extended/RDTreeWidget.cpp index a7159fcd0..effbc00b6 100644 --- a/qrenderdoc/Widgets/Extended/RDTreeWidget.cpp +++ b/qrenderdoc/Widgets/Extended/RDTreeWidget.cpp @@ -596,6 +596,8 @@ RDTreeWidget::RDTreeWidget(QWidget *parent) : RDTreeView(parent) RDTreeWidget::~RDTreeWidget() { + RDTreeView::setModel(NULL); + delete m_root; delete m_model; }