diff options
author | Aurindam Jana <aurindam.jana@digia.com> | 2013-07-10 15:44:43 +0200 |
---|---|---|
committer | Kai Koehne <kai.koehne@digia.com> | 2013-07-11 10:53:06 +0200 |
commit | fd685138c78307e6925b597b949cb2936514302a (patch) | |
tree | 31a7861e3c421f6be8f0168193e8eec194166b53 /src/plugins/debugger/qml/qmlv8debuggerclient.cpp | |
parent | 415c4c7765934a65956520e15e434e3ef0a73a4f (diff) | |
download | qt-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.cpp | 6 |
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); } |