aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2018-05-11 14:09:41 +0200
committerUlf Hermann <ulf.hermann@qt.io>2018-05-15 13:31:01 +0000
commitf7895e272b4555ce1963790b9db1eea91bf359fb (patch)
tree4cd742af11b2b9a76cd00dd0969497a943f27213 /src
parenta86eda329e7b47b75222434884e40e925b599b82 (diff)
QML Debugger: Don't hang if there are no scopes to be retrieved
Qt 5.11.0 contains an optimization that does away with call contexts for simple inline bindings. Also, it doesn't report QML contexts as scopes in the "frame" and "backtrace" commands. Therefore, in those cases "this" is the only thing to be retrieved. Check if we are done when "this" has been retrieved and no scopes have been found. Change-Id: I9e0f545777bc38333938b65a934d42701ec4f807 Task-number: QTBUG-68218 Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/debugger/qml/qmlengine.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp
index 96007d1bcb..214313773f 100644
--- a/src/plugins/debugger/qml/qmlengine.cpp
+++ b/src/plugins/debugger/qml/qmlengine.cpp
@@ -2167,6 +2167,10 @@ void QmlEnginePrivate::handleFrame(const QVariantMap &response)
watchHandler->insertItem(item);
evaluate(exp, -1, [this, iname, exp](const QVariantMap &response) {
handleEvaluateExpression(response, iname, exp);
+
+ // If there are no scopes, "this" may be the only thing to look up.
+ if (currentFrameScopes.isEmpty())
+ checkForFinishedUpdate();
});
}