summaryrefslogtreecommitdiff
path: root/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
diff options
context:
space:
mode:
authorAurindam Jana <aurindam.jana@digia.com>2013-07-10 15:44:43 +0200
committerKai Koehne <kai.koehne@digia.com>2013-07-11 10:53:06 +0200
commitfd685138c78307e6925b597b949cb2936514302a (patch)
tree31a7861e3c421f6be8f0168193e8eec194166b53 /src/plugins/debugger/qml/qmlv8debuggerclient.cpp
parent415c4c7765934a65956520e15e434e3ef0a73a4f (diff)
downloadqt-creator-fd685138c78307e6925b597b949cb2936514302a.tar.gz
QmlConsole: Fix infinite recursion bug
The queried v8 object sometimes returns a child item that refers to itself triggering an infinite recursion. Task-number: QTCREATORBUG-9747 Change-Id: I30dfbb834ebeb39c33a6050d4b4860b1b47f34d9 Reviewed-by: Eike Ziller <eike.ziller@digia.com> Reviewed-by: Mitch Curtis <mitch.curtis@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Diffstat (limited to 'src/plugins/debugger/qml/qmlv8debuggerclient.cpp')
-rw-r--r--src/plugins/debugger/qml/qmlv8debuggerclient.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
index 12ebbc10d3..fcfa8ddbca 100644
--- a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
+++ b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
@@ -1771,8 +1771,10 @@ QmlJS::ConsoleItem *constructLogItemTree(QmlJS::ConsoleItem *parent,
ConsoleItem *item = new ConsoleItem(parent, ConsoleItem::UndefinedType, text);
foreach (const QVariant &property, objectData.properties) {
- ConsoleItem *child = constructLogItemTree(item, extractData(property, refsVal),
- refsVal);
+ const QmlV8ObjectData childObjectData = extractData(property, refsVal);
+ if (childObjectData.handle == objectData.handle)
+ continue;
+ ConsoleItem *child = constructLogItemTree(item, childObjectData, refsVal);
if (child)
item->insertChild(child, sorted);
}