From c1de315d6cbf8c94888aa4598d574ee2c3db272e Mon Sep 17 00:00:00 2001 From: hjk <hjk@theqtcompany.com> Date: Wed, 13 Apr 2016 15:13:54 +0200 Subject: [PATCH] Debugger: Avoid looking up references too often Change-Id: Icec24ce1af8d273c3439ee91800ed1f4381ee19a Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com> --- src/plugins/debugger/qml/qmlengine.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp index b8a7c2d5326..bbbd1158ec1 100644 --- a/src/plugins/debugger/qml/qmlengine.cpp +++ b/src/plugins/debugger/qml/qmlengine.cpp @@ -125,7 +125,7 @@ struct LookupData QByteArray exp; }; -typedef QMultiHash<int, LookupData> LookupItems; // id -> (iname, exp) +typedef QHash<int, LookupData> LookupItems; // id -> (iname, exp) class QmlEnginePrivate : QmlDebugClient { @@ -1362,8 +1362,14 @@ void QmlEnginePrivate::lookup(const LookupItems &items) if (items.isEmpty()) return; - QList<int> handles = items.keys(); - currentlyLookingUp += items; + QList<int> handles; + for (auto it = items.begin(); it != items.end(); ++it) { + const int handle = it.key(); + if (!currentlyLookingUp.contains(handle)) { + currentlyLookingUp.insert(handle, it.value()); + handles.append(handle); + } + } DebuggerCommand cmd(LOOKUP); cmd.arg(HANDLES, handles); -- GitLab