From 6ea6e9e5cebaf32ce990d99cb3211b7a0d03aeab Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Wed, 18 Mar 2015 13:44:43 +0100 Subject: [PATCH] Utils: Use QJsonDocument instead of QScriptEngine for json parsing That lets us remove the dependency to QtScript Change-Id: I54e1e5b74782073a36daa2a4b4c3547925de4ca8 Reviewed-by: hjk Reviewed-by: Marco Benelli Reviewed-by: Erik Verbruggen --- src/libs/utils/json.cpp | 10 ++++------ src/libs/utils/utils-lib.pri | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/libs/utils/json.cpp b/src/libs/utils/json.cpp index 45c1181780a..da8347bb800 100644 --- a/src/libs/utils/json.cpp +++ b/src/libs/utils/json.cpp @@ -36,7 +36,7 @@ #include #include #include -#include +#include using namespace Utils; @@ -57,13 +57,11 @@ JsonValue::~JsonValue() JsonValue *JsonValue::create(const QString &s, JsonMemoryPool *pool) { - QScriptEngine engine; - QScriptValue jsonParser = engine.evaluate(QLatin1String("JSON.parse")); - QScriptValue value = jsonParser.call(QScriptValue(), QScriptValueList() << s); - if (engine.hasUncaughtException() || !value.isValid()) + const QJsonDocument document = QJsonDocument::fromJson(s.toUtf8()); + if (document.isNull()) return 0; - return build(value.toVariant(), pool); + return build(document.toVariant(), pool); } void *JsonValue::operator new(size_t size, JsonMemoryPool *pool) diff --git a/src/libs/utils/utils-lib.pri b/src/libs/utils/utils-lib.pri index fd7ced8e255..933217580d2 100644 --- a/src/libs/utils/utils-lib.pri +++ b/src/libs/utils/utils-lib.pri @@ -4,7 +4,7 @@ dll { DEFINES += QTCREATOR_UTILS_STATIC_LIB } -QT += script network +QT += network CONFIG += exceptions # used by portlist.cpp, textfileformat.cpp, and ssh/*