summaryrefslogtreecommitdiff
path: root/src/plugins/debugger/script/scriptengine.cpp
diff options
context:
space:
mode:
authorArvid Ephraim Picciani <arvid.picciani@nokia.com>2010-10-15 13:00:14 +0200
committerArvid Ephraim Picciani <arvid.picciani@nokia.com>2010-10-15 15:19:11 +0200
commit4d14920ad6324d6c87b2f1539e6771181be38838 (patch)
tree14b8d8a1299928d2468349cd1d3c937444a541d1 /src/plugins/debugger/script/scriptengine.cpp
parent235430fd8a90fc4350eb370c14f9c5021ddbc471 (diff)
downloadqt-creator-4d14920ad6324d6c87b2f1539e6771181be38838.tar.gz
clean up WatchData
Reviewed-by: hjk
Diffstat (limited to 'src/plugins/debugger/script/scriptengine.cpp')
-rw-r--r--src/plugins/debugger/script/scriptengine.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/plugins/debugger/script/scriptengine.cpp b/src/plugins/debugger/script/scriptengine.cpp
index 9fb2e337a2..09ac194e3d 100644
--- a/src/plugins/debugger/script/scriptengine.cpp
+++ b/src/plugins/debugger/script/scriptengine.cpp
@@ -702,9 +702,11 @@ void ScriptEngine::updateLocals()
m_scriptEngine->setAgent(0);
WatchData data;
+ data.id = m_watchIdCounter++;
+ m_watchIdToScriptValue.insert(data.id, context->activationObject());
data.iname = "local";
data.name = _(data.iname);
- data.scriptValue = context->activationObject();
+
watchHandler()->beginCycle();
updateSubItem(data);
watchHandler()->endCycle();
@@ -744,8 +746,8 @@ void ScriptEngine::updateSubItem(const WatchData &data0)
//SDEBUG("\nUPDATE SUBITEM: " << data.toString() << data.scriptValue.toString());
QTC_ASSERT(data.isValid(), return);
+ const QScriptValue &ob = m_watchIdToScriptValue.value(data.id);
if (data.isTypeNeeded() || data.isValueNeeded()) {
- const QScriptValue &ob = data.scriptValue;
if (ob.isArray()) {
data.setType("Array", false);
data.setValue(QString(QLatin1Char(' ')));
@@ -802,14 +804,15 @@ void ScriptEngine::updateSubItem(const WatchData &data0)
}
if (data.isChildrenNeeded()) {
- QScriptValueIterator it(data.scriptValue);
+ QScriptValueIterator it(ob);
while (it.hasNext()) {
it.next();
WatchData data1;
data1.iname = data.iname + '.' + it.name().toLatin1();
data1.exp = it.name().toLatin1();
data1.name = it.name();
- data1.scriptValue = it.value();
+ data.id = m_watchIdCounter++;
+ m_watchIdToScriptValue.insert(data.id, it.value());
if (watchHandler()->isExpandedIName(data1.iname)) {
data1.setChildrenNeeded();
} else {
@@ -822,7 +825,7 @@ void ScriptEngine::updateSubItem(const WatchData &data0)
}
if (data.isHasChildrenNeeded()) {
- QScriptValueIterator it(data.scriptValue);
+ QScriptValueIterator it(ob);
data.setHasChildren(it.hasNext());
}