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>
This commit is contained in:
Aurindam Jana
2013-07-10 15:44:43 +02:00
committed by Kai Koehne
parent 415c4c7765
commit fd685138c7

View File

@@ -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);
}