From 2d0cd7906798004bb276b0f858e24c5e3e4f8ceb Mon Sep 17 00:00:00 2001
From: hjk <hjk@theqtcompany.com>
Date: Fri, 6 Feb 2015 22:37:31 +0100
Subject: [PATCH] TreeModel: Ensure deterministic state during child
 destruction

This allows tree items to rely on not being part of a model
inside their destuctors.

Change-Id: I5f19739d3701426b068a07bf82f5199fbb259f29
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
---
 src/libs/utils/treemodel.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/libs/utils/treemodel.cpp b/src/libs/utils/treemodel.cpp
index dda0d6f2e6c..4390dd5e737 100644
--- a/src/libs/utils/treemodel.cpp
+++ b/src/libs/utils/treemodel.cpp
@@ -624,7 +624,7 @@ TreeItem::TreeItem(const QStringList &displays, int flags)
 
 TreeItem::~TreeItem()
 {
-    clear();
+    removeChildren();
     delete m_displays;
 }
 
@@ -818,6 +818,7 @@ void TreeItem::clear()
 {
     while (m_children.size()) {
         TreeItem *item = m_children.takeLast();
+        item->m_model = 0;
         item->m_parent = 0;
         delete item;
     }
-- 
GitLab