30 lines
1.0 KiB
Diff
30 lines
1.0 KiB
Diff
|
From cec34b01f2c797475245e9416bbcce6b69a4cb38 Mon Sep 17 00:00:00 2001
|
||
|
From: Olivier Goffart <ogoffart@trolltech.com>
|
||
|
Date: Fri, 4 Dec 2009 11:12:01 +0100
|
||
|
Subject: [PATCH] Fix crash when QGraphicsItem destructor deletes other QGraphicsItem
|
||
|
|
||
|
Same fix as e7a10b00be3e4aa197900ecf424e6d44b07248ae
|
||
|
|
||
|
Reviewed-by: Alexis
|
||
|
---
|
||
|
src/gui/graphicsview/qgraphicsitem.cpp | 4 ++--
|
||
|
tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp | 6 ++++++
|
||
|
2 files changed, 8 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp
|
||
|
index 7794da6..11bb01b 100644
|
||
|
--- a/src/gui/graphicsview/qgraphicsitem.cpp
|
||
|
+++ b/src/gui/graphicsview/qgraphicsitem.cpp
|
||
|
@@ -1347,8 +1347,8 @@ QGraphicsItem::~QGraphicsItem()
|
||
|
}
|
||
|
|
||
|
if (!d_ptr->children.isEmpty()) {
|
||
|
- QList<QGraphicsItem *> oldChildren = d_ptr->children;
|
||
|
- qDeleteAll(oldChildren);
|
||
|
+ while (!d_ptr->children.isEmpty())
|
||
|
+ delete d_ptr->children.first();
|
||
|
Q_ASSERT(d_ptr->children.isEmpty());
|
||
|
}
|
||
|
|
||
|
|