summaryrefslogtreecommitdiff
path: root/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
diff options
context:
space:
mode:
authorAurindam Jana <aurindam.jana@nokia.com>2012-03-21 15:06:18 +0100
committerAurindam Jana <aurindam.jana@nokia.com>2012-03-22 10:53:10 +0100
commit3d1f5bd85ca7b291e53eba1569115b664861b500 (patch)
tree232a09d14ef052efdee96f394fefeb892bf75b6a /src/plugins/debugger/qml/qmlv8debuggerclient.cpp
parent39cb4e954d08cc71adeaf16319fc8eeb60e38eed (diff)
downloadqt-creator-3d1f5bd85ca7b291e53eba1569115b664861b500.tar.gz
QtMessageLogHandler: Fix crash
Set a parent when creating QtMessageLogItem. Change-Id: I8faf76059dcc517794a4eb3d202bc14cd1632ca8 Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
Diffstat (limited to 'src/plugins/debugger/qml/qmlv8debuggerclient.cpp')
-rw-r--r--src/plugins/debugger/qml/qmlv8debuggerclient.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
index e83e587da1..db20ac22e7 100644
--- a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
+++ b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
@@ -128,8 +128,8 @@ public:
//TODO:: remove this method
void reformatRequest(QByteArray &request);
- QtMessageLogItem *constructLogItemTree(const QmlV8ObjectData &objectData,
- const QVariant &refsVal);
+ QtMessageLogItem *constructLogItemTree(QtMessageLogItem *parent,
+ const QmlV8ObjectData &objectData, const QVariant &refsVal);
private:
QByteArray packMessage(const QByteArray &type, const QByteArray &message = QByteArray());
QScriptValue initObject();
@@ -974,6 +974,7 @@ void QmlV8DebuggerClientPrivate::reformatRequest(QByteArray &request)
}
QtMessageLogItem *QmlV8DebuggerClientPrivate::constructLogItemTree(
+ QtMessageLogItem *parent,
const QmlV8ObjectData &objectData,
const QVariant &refsVal)
{
@@ -987,12 +988,12 @@ QtMessageLogItem *QmlV8DebuggerClientPrivate::constructLogItemTree(
text = QString(_("%1: %2")).arg(QString::fromAscii(objectData.name))
.arg(objectData.value.toString());
- QtMessageLogItem *item = new QtMessageLogItem(
- QtMessageLogHandler::UndefinedType, text);
+ QtMessageLogItem *item = new QtMessageLogItem(parent,
+ QtMessageLogHandler::UndefinedType, text);
foreach (const QVariant &property, objectData.properties) {
QtMessageLogItem *child = constructLogItemTree(
- extractData(property, refsVal), refsVal);
+ item, extractData(property, refsVal), refsVal);
if (child)
item->insertChild(item->childCount(), child);
}
@@ -1837,7 +1838,8 @@ void QmlV8DebuggerClient::updateEvaluationResult(int sequence, bool success, con
} else if (d->debuggerCommands.contains(sequence)) {
d->updateLocalsAndWatchers.removeOne(sequence);
QmlV8ObjectData body = d->extractData(bodyVal, refsVal);
- QtMessageLogItem *item = d->constructLogItemTree(body, refsVal);
+ QtMessageLogItem *item = d->constructLogItemTree(d->engine->qtMessageLogHandler()->root(),
+ body, refsVal);
if (item)
d->engine->qtMessageLogHandler()->appendItem(item);
//Update the locals