diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2018-07-18 11:55:44 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2018-07-18 13:37:01 +0000 |
commit | d140614a1df7d9563acef5092f92e9f31c14723b (patch) | |
tree | da5853c8d7ea44b895cd20fe0a4cc570583b535a /src/plugins | |
parent | 98f848ef834d1be33929b39ca1a85ef42b8c9a78 (diff) |
V4 Debuger: Drop namesAsObjects option
There is no client that uses this anymore, and dropping it allows us to
eliminate a lot of code.
Change-Id: I6b09669c9dd7fcf9c2d249f133bfbb78d2b6f7f4
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/plugins')
4 files changed, 11 insertions, 87 deletions
diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp b/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp index 2d1dcee0aa..876bb6bb60 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp @@ -111,7 +111,7 @@ int QV4DataCollector::encodeScopeType(QV4::Heap::ExecutionContext::ContextType s } QV4DataCollector::QV4DataCollector(QV4::ExecutionEngine *engine) - : m_engine(engine), m_namesAsObjects(true) + : m_engine(engine) { m_values.set(engine, engine->newArrayObject()); } @@ -192,11 +192,6 @@ QJsonObject QV4DataCollector::lookupRef(Ref ref) { QJsonObject dict; - if (m_namesAsObjects) { - if (lookupSpecialRef(ref, &dict)) - return dict; - } - dict.insert(QStringLiteral("handle"), qint64(ref)); QV4::Scope scope(engine()); QV4::ScopedValue value(scope, getValue(ref)); @@ -208,36 +203,6 @@ QJsonObject QV4DataCollector::lookupRef(Ref ref) return dict; } -// TODO: Drop this method once we don't need to support namesAsObjects anymore -QV4DataCollector::Ref QV4DataCollector::addFunctionRef(const QString &functionName) -{ - Q_ASSERT(m_namesAsObjects); - Ref ref = addRef(QV4::Primitive::emptyValue(), false); - - QJsonObject dict; - dict.insert(QStringLiteral("handle"), qint64(ref)); - dict.insert(QStringLiteral("type"), QStringLiteral("function")); - dict.insert(QStringLiteral("name"), functionName); - m_specialRefs.insert(ref, dict); - - return ref; -} - -// TODO: Drop this method once we don't need to support namesAsObjects anymore -QV4DataCollector::Ref QV4DataCollector::addScriptRef(const QString &scriptName) -{ - Q_ASSERT(m_namesAsObjects); - Ref ref = addRef(QV4::Primitive::emptyValue(), false); - - QJsonObject dict; - dict.insert(QStringLiteral("handle"), qint64(ref)); - dict.insert(QStringLiteral("type"), QStringLiteral("script")); - dict.insert(QStringLiteral("name"), scriptName); - m_specialRefs.insert(ref, dict); - - return ref; -} - bool QV4DataCollector::isValidRef(QV4DataCollector::Ref ref) const { QV4::Scope scope(engine()); @@ -291,13 +256,8 @@ QJsonObject QV4DataCollector::buildFrame(const QV4::StackFrame &stackFrame, int QJsonObject frame; frame[QLatin1String("index")] = frameNr; frame[QLatin1String("debuggerFrame")] = false; - if (m_namesAsObjects) { - frame[QLatin1String("func")] = toRef(addFunctionRef(stackFrame.function)); - frame[QLatin1String("script")] = toRef(addScriptRef(stackFrame.source)); - } else { - frame[QLatin1String("func")] = stackFrame.function; - frame[QLatin1String("script")] = stackFrame.source; - } + frame[QLatin1String("func")] = stackFrame.function; + frame[QLatin1String("script")] = stackFrame.source; frame[QLatin1String("line")] = stackFrame.line - 1; if (stackFrame.column >= 0) frame[QLatin1String("column")] = stackFrame.column; @@ -339,8 +299,6 @@ QJsonObject QV4DataCollector::buildFrame(const QV4::StackFrame &stackFrame, int void QV4DataCollector::clear() { m_values.set(engine(), engine()->newArrayObject()); - m_specialRefs.clear(); - m_namesAsObjects = true; } QV4DataCollector::Ref QV4DataCollector::addRef(QV4::Value value, bool deduplicate) @@ -366,7 +324,7 @@ QV4DataCollector::Ref QV4DataCollector::addRef(QV4::Value value, bool deduplicat QV4::ScopedObject array(scope, m_values.value()); if (deduplicate) { for (Ref i = 0; i < array->getLength(); ++i) { - if (array->get(i) == value.rawValue() && !m_specialRefs.contains(i)) + if (array->get(i) == value.rawValue()) return i; } } @@ -384,18 +342,6 @@ QV4::ReturnedValue QV4DataCollector::getValue(Ref ref) return array->get(ref, nullptr); } -// TODO: Drop this method once we don't need to support namesAsObjects anymore -bool QV4DataCollector::lookupSpecialRef(Ref ref, QJsonObject *dict) -{ - Q_ASSERT(m_namesAsObjects); - SpecialRefs::const_iterator it = m_specialRefs.constFind(ref); - if (it == m_specialRefs.cend()) - return false; - - *dict = it.value(); - return true; -} - QJsonArray QV4DataCollector::collectProperties(const QV4::Object *object) { QJsonArray res; diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.h b/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.h index 4851e2fa29..bc178fa2db 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.h +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.h @@ -68,11 +68,6 @@ public: QV4DataCollector(QV4::ExecutionEngine *engine); Ref addValueRef(const QV4::ScopedValue &value); - Ref addFunctionRef(const QString &functionName); // only for namesAsObjects - Ref addScriptRef(const QString &scriptName); // only for namesAsObjects - - void setNamesAsObjects(bool namesAsObjects) { m_namesAsObjects = namesAsObjects; } - bool namesAsObjects() const { return m_namesAsObjects; } bool isValidRef(Ref ref) const; QJsonObject lookupRef(Ref ref); @@ -86,7 +81,6 @@ public: private: Ref addRef(QV4::Value value, bool deduplicate = true); QV4::ReturnedValue getValue(Ref ref); - bool lookupSpecialRef(Ref ref, QJsonObject *dict); // only for namesAsObjects QJsonArray collectProperties(const QV4::Object *object); QJsonObject collectAsJson(const QString &name, const QV4::ScopedValue &value); @@ -94,9 +88,6 @@ private: QV4::ExecutionEngine *m_engine; QV4::PersistentValue m_values; - typedef QHash<Ref, QJsonObject> SpecialRefs; // only for namesAsObjects - SpecialRefs m_specialRefs; // only for namesAsObjects - bool m_namesAsObjects; }; QT_END_NAMESPACE diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp b/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp index 42e4566a4f..aa05a62323 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp @@ -122,13 +122,6 @@ protected: response.insert(QStringLiteral("running"), debugService->debuggerAgent.isRunning()); } - QV4DataCollector *saneCollector(QV4Debugger *debugger) - { - QV4DataCollector *collector = debugger->collector(); - collector->setNamesAsObjects(debugService->clientRequiresNamesAsObjects()); - return collector; - } - void createErrorResponse(const QString &msg) { QJsonValue command = req.value(QLatin1String("command")); @@ -289,7 +282,7 @@ public: return; } - BacktraceJob job(saneCollector(debugger), fromFrame, toFrame); + BacktraceJob job(debugger->collector(), fromFrame, toFrame); debugger->runInEngine(&job); // response: @@ -324,7 +317,7 @@ public: return; } - FrameJob job(saneCollector(debugger), frameNr); + FrameJob job(debugger->collector(), frameNr); debugger->runInEngine(&job); if (!job.wasSuccessful()) { createErrorResponse(QStringLiteral("frame retrieval failed")); @@ -370,7 +363,7 @@ public: return; } - ScopeJob job(saneCollector(debugger), frameNr, scopeNr); + ScopeJob job(debugger->collector(), frameNr, scopeNr); debugger->runInEngine(&job); if (!job.wasSuccessful()) { createErrorResponse(QStringLiteral("scope retrieval failed")); @@ -410,7 +403,7 @@ public: debugger = debuggers.first(); } - ValueLookupJob job(handles, saneCollector(debugger)); + ValueLookupJob job(handles, debugger->collector()); debugger->runInEngine(&job); if (!job.exceptionMessage().isEmpty()) { createErrorResponse(job.exceptionMessage()); @@ -629,7 +622,7 @@ public: } ExpressionEvalJob job(debugger->engine(), frame, context, expression, - saneCollector(debugger)); + debugger->collector()); debugger->runInEngine(&job); if (job.hasExeption()) { createErrorResponse(job.exceptionMessage()); @@ -660,7 +653,7 @@ V4CommandHandler *QV4DebugServiceImpl::v4CommandHandler(const QString &command) QV4DebugServiceImpl::QV4DebugServiceImpl(QObject *parent) : QQmlConfigurableDebugService<QV4DebugService>(1, parent), - debuggerAgent(this), theSelectedFrame(0), namesAsObjects(true), + debuggerAgent(this), theSelectedFrame(0), unknownV4CommandHandler(new UnknownV4CommandHandler) { addHandler(new V4VersionRequest); @@ -764,9 +757,7 @@ void QV4DebugServiceImpl::messageReceived(const QByteArray &message) if (type == V4_CONNECT) { QJsonObject parameters = QJsonDocument::fromJson(payload).object(); - namesAsObjects = true; - if (parameters.contains("namesAsObjects")) - namesAsObjects = parameters.value("namesAsObjects").toBool(); + Q_UNUSED(parameters); // For future protocol changes emit messageToClient(name(), packMessage(type)); stopWaiting(); diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.h b/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.h index 30ea5cd0bf..b1f7053c36 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.h +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.h @@ -86,8 +86,6 @@ public: int selectedFrame() const; void selectFrame(int frameNr); - bool clientRequiresNamesAsObjects() const { return namesAsObjects; } - QV4DebuggerAgent debuggerAgent; protected: @@ -107,8 +105,6 @@ private: static int sequence; int theSelectedFrame; - bool namesAsObjects; - void addHandler(V4CommandHandler* handler); QHash<QString, V4CommandHandler*> handlers; QScopedPointer<UnknownV4CommandHandler> unknownV4CommandHandler; |