diff options
19 files changed, 149 insertions, 131 deletions
diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp b/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp index 90edf86acb..382fc3bf90 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp @@ -5,15 +5,15 @@ #include "qv4debugger.h" #include "qv4debugjob.h" -#include <private/qv4script_p.h> -#include <private/qv4string_p.h> -#include <private/qv4objectiterator_p.h> -#include <private/qv4identifierhash_p.h> -#include <private/qv4runtime_p.h> -#include <private/qv4identifiertable_p.h> - #include <private/qqmlcontext_p.h> #include <private/qqmlengine_p.h> +#include <private/qv4identifierhash_p.h> +#include <private/qv4identifiertable_p.h> +#include <private/qv4objectiterator_p.h> +#include <private/qv4runtime_p.h> +#include <private/qv4script_p.h> +#include <private/qv4stackframe_p.h> +#include <private/qv4string_p.h> #include <QtCore/qjsonarray.h> #include <QtCore/qjsonobject.h> diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4debugger.cpp b/src/plugins/qmltooling/qmldbg_debugger/qv4debugger.cpp index a407153401..69eef41261 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4debugger.cpp +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4debugger.cpp @@ -5,10 +5,11 @@ #include "qv4debugjob.h" #include "qv4datacollector.h" -#include <private/qv4scopedvalue_p.h> -#include <private/qv4script_p.h> #include <private/qqmlcontext_p.h> #include <private/qqmlengine_p.h> +#include <private/qv4scopedvalue_p.h> +#include <private/qv4script_p.h> +#include <private/qv4stackframe_p.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4debuggeragent.cpp b/src/plugins/qmltooling/qmldbg_debugger/qv4debuggeragent.cpp index 11e1a49512..e512567f3e 100644 --- a/src/plugins/qmltooling/qmldbg_debugger/qv4debuggeragent.cpp +++ b/src/plugins/qmltooling/qmldbg_debugger/qv4debuggeragent.cpp @@ -5,6 +5,8 @@ #include "qv4debugservice.h" #include "qv4datacollector.h" +#include <private/qv4stackframe_p.h> + #include <QtCore/qjsonobject.h> #include <QtCore/qjsonarray.h> diff --git a/src/plugins/qmltooling/qmldbg_nativedebugger/qqmlnativedebugservice.cpp b/src/plugins/qmltooling/qmldbg_nativedebugger/qqmlnativedebugservice.cpp index 84cd1236d9..ae68f7d980 100644 --- a/src/plugins/qmltooling/qmldbg_nativedebugger/qqmlnativedebugservice.cpp +++ b/src/plugins/qmltooling/qmldbg_nativedebugger/qqmlnativedebugservice.cpp @@ -4,17 +4,18 @@ #include "qqmlnativedebugservice.h" #include <private/qqmldebugconnector_p.h> +#include <private/qqmldebugserviceinterfaces_p.h> #include <private/qv4debugging_p.h> -#include <private/qv4engine_p.h> #include <private/qv4debugging_p.h> -#include <private/qv4script_p.h> -#include <private/qv4string_p.h> -#include <private/qv4objectiterator_p.h> +#include <private/qv4engine_p.h> #include <private/qv4identifierhash_p.h> +#include <private/qv4identifiertable_p.h> +#include <private/qv4objectiterator_p.h> #include <private/qv4runtime_p.h> +#include <private/qv4script_p.h> +#include <private/qv4stackframe_p.h> +#include <private/qv4string_p.h> #include <private/qversionedpacket_p.h> -#include <private/qqmldebugserviceinterfaces_p.h> -#include <private/qv4identifiertable_p.h> #include <QtQml/qjsengine.h> #include <QtCore/qjsonarray.h> diff --git a/src/qml/common/qqmltranslation.cpp b/src/qml/common/qqmltranslation.cpp index 7120071b1a..80a088b228 100644 --- a/src/qml/common/qqmltranslation.cpp +++ b/src/qml/common/qqmltranslation.cpp @@ -3,6 +3,8 @@ #include "private/qqmltranslation_p.h" +#include <QtCore/qcoreapplication.h> + QQmlTranslation::QQmlTranslation(const Data &d) : data(d) { } QQmlTranslation::QQmlTranslation() : data(nullptr) { } diff --git a/src/qml/common/qqmltranslation_p.h b/src/qml/common/qqmltranslation_p.h index 9849203abe..7f5bb87531 100644 --- a/src/qml/common/qqmltranslation_p.h +++ b/src/qml/common/qqmltranslation_p.h @@ -15,9 +15,9 @@ // We mean it. // -#include <QtCore/qstring.h> +#include <private/qtqmlglobal_p.h> -#include <private/qv4qmlcontext_p.h> +#include <QtCore/qstring.h> QT_BEGIN_NAMESPACE diff --git a/src/qml/common/qv4compileddata_p.h b/src/qml/common/qv4compileddata_p.h index 18d2a4c114..95aaf01707 100644 --- a/src/qml/common/qv4compileddata_p.h +++ b/src/qml/common/qv4compileddata_p.h @@ -156,7 +156,7 @@ static_assert(sizeof(Location) == 4, "Location structure needs to have the expec struct RegExp { - enum Flags : unsigned int { + enum Flag : quint8 { RegExp_NoFlags = 0x0, RegExp_Global = 0x01, RegExp_IgnoreCase = 0x02, @@ -165,6 +165,8 @@ struct RegExp RegExp_Unicode = 0x10, }; + Q_DECLARE_FLAGS(Flags, Flag); + RegExp() : m_data(QSpecialIntegerBitfieldZero) {} RegExp(quint32 flags, quint32 stringIndex) : RegExp() { diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index f3f2a35336..0f896210cc 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -3,6 +3,10 @@ #include "qv4engine_p.h" +#include <wtf/BumpPointerAllocator.h> +#include <wtf/OSAllocator.h> +#include <wtf/PageAllocation.h> + #include <private/qjsvalue_p.h> #include <private/qqmlbuiltinfunctions_p.h> #include <private/qqmlengine_p.h> diff --git a/src/qml/jsruntime/qv4engine_p.h b/src/qml/jsruntime/qv4engine_p.h index 9a0f56fd26..671e0f5a42 100644 --- a/src/qml/jsruntime/qv4engine_p.h +++ b/src/qml/jsruntime/qv4engine_p.h @@ -21,7 +21,6 @@ #include <private/qv4context_p.h> #include <private/qv4enginebase_p.h> #include <private/qv4executablecompilationunit_p.h> -#include <private/qv4function_p.h> #include <private/qv4global_p.h> #include <private/qv4stacklimits_p.h> @@ -696,19 +695,15 @@ public: bool checkStackLimits(); int safeForAllocLength(qint64 len64); - bool canJIT(Function *f = nullptr) + template<typename Jittable> + bool canJIT(Jittable *jittable) const { #if QT_CONFIG(qml_jit) - if (!m_canAllocateExecutableMemory) - return false; - if (f) { - return f->kind != Function::AotCompiled - && !f->isGenerator() - && f->interpreterCallCount >= s_jitCallCountThreshold; - } - return true; + return m_canAllocateExecutableMemory + && jittable->isJittable() + && jittable->interpreterCallCount >= s_jitCallCountThreshold; #else - Q_UNUSED(f); + Q_UNUSED(jittable); return false; #endif } diff --git a/src/qml/jsruntime/qv4function_p.h b/src/qml/jsruntime/qv4function_p.h index 7543dd3c4b..8161c17406 100644 --- a/src/qml/jsruntime/qv4function_p.h +++ b/src/qml/jsruntime/qv4function_p.h @@ -132,6 +132,8 @@ public: return nullptr; return executableCompilationUnit()->runtimeFunctions[compiledFunction->nestedFunctionIndex]; } + + bool isJittable() const { return kind != Function::AotCompiled && !isGenerator(); } }; } diff --git a/src/qml/jsruntime/qv4regexp.cpp b/src/qml/jsruntime/qv4regexp.cpp index 9c48199157..8dd14d3a43 100644 --- a/src/qml/jsruntime/qv4regexp.cpp +++ b/src/qml/jsruntime/qv4regexp.cpp @@ -10,10 +10,11 @@ using namespace QV4; #if ENABLE(YARR_JIT) -static constexpr quint8 RegexpJitThreshold = 5; +static constexpr qsizetype LongStringJitThreshold = 1024; +static constexpr int LongStringJitBoost = 3; #endif -static JSC::RegExpFlags jscFlags(uint flags) +static JSC::RegExpFlags jscFlags(quint8 flags) { JSC::RegExpFlags jscFlags = JSC::NoFlags; if (flags & CompiledData::RegExp::RegExp_Global) @@ -71,22 +72,33 @@ uint RegExp::match(const QString &string, int start, uint *matchOffsets) regexp->byteCode = nullptr; }; - if (!priv->jitCode && !priv->jitFailed && priv->internalClass->engine->canJIT() - && (string.length() > 1024 || priv->matchCount++ == RegexpJitThreshold)) { - removeByteCode(priv); + if (!priv->jitCode) { - JSC::Yarr::ErrorCode error = JSC::Yarr::ErrorCode::NoError; - JSC::Yarr::YarrPattern yarrPattern( - WTF::String(*priv->pattern), jscFlags(priv->flags), error); - if (!yarrPattern.m_containsBackreferences) { - priv->jitCode = new JSC::Yarr::YarrCodeBlock; - JSC::VM *vm = static_cast<JSC::VM *>(priv->internalClass->engine); - JSC::Yarr::jitCompile(yarrPattern, JSC::Yarr::Char16, vm, *priv->jitCode); - } + // Long strings count as more calls. We want the JIT to run earlier. + const bool longString = string.length() > LongStringJitThreshold; + if (longString) + priv->interpreterCallCount += LongStringJitBoost; + + if (priv->internalClass->engine->canJIT(priv)) { + removeByteCode(priv); + + JSC::Yarr::ErrorCode error = JSC::Yarr::ErrorCode::NoError; + JSC::Yarr::YarrPattern yarrPattern( + WTF::String(*priv->pattern), jscFlags(priv->flags), error); + if (!yarrPattern.m_containsBackreferences) { + priv->jitCode = new JSC::Yarr::YarrCodeBlock; + JSC::VM *vm = static_cast<JSC::VM *>(priv->internalClass->engine); + JSC::Yarr::jitCompile(yarrPattern, JSC::Yarr::Char16, vm, *priv->jitCode); + } - if (!priv->hasValidJITCode()) { - removeJitCode(priv); - regenerateByteCode(priv); + if (!priv->hasValidJITCode()) { + removeJitCode(priv); + regenerateByteCode(priv); + } + } else if (!longString) { + // Short strings do the regular post-increment to honor + // QV4_JIT_CALL_THRESHOLD. + ++priv->interpreterCallCount; } } #endif @@ -172,23 +184,8 @@ QString RegExp::getSubstitution(const QString &matched, const QString &str, int return result; } -QString Heap::RegExp::flagsAsString() const -{ - QString result; - if (flags & CompiledData::RegExp::RegExp_Global) - result += QLatin1Char('g'); - if (flags & CompiledData::RegExp::RegExp_IgnoreCase) - result += QLatin1Char('i'); - if (flags & CompiledData::RegExp::RegExp_Multiline) - result += QLatin1Char('m'); - if (flags & CompiledData::RegExp::RegExp_Unicode) - result += QLatin1Char('u'); - if (flags & CompiledData::RegExp::RegExp_Sticky) - result += QLatin1Char('y'); - return result; -} - -Heap::RegExp *RegExp::create(ExecutionEngine* engine, const QString& pattern, uint flags) +Heap::RegExp *RegExp::create( + ExecutionEngine *engine, const QString &pattern, CompiledData::RegExp::Flags flags) { RegExpCacheKey key(pattern, flags); @@ -215,10 +212,6 @@ void Heap::RegExp::init(ExecutionEngine *engine, const QString &pattern, uint fl this->pattern = new QString(pattern); this->flags = flags; - valid = false; - jitFailed = false; - matchCount = 0; - JSC::Yarr::ErrorCode error = JSC::Yarr::ErrorCode::NoError; JSC::Yarr::YarrPattern yarrPattern(WTF::String(pattern), jscFlags(flags), error); if (error != JSC::Yarr::ErrorCode::NoError) diff --git a/src/qml/jsruntime/qv4regexp_p.h b/src/qml/jsruntime/qv4regexp_p.h index 8a178dd2f6..89f9515917 100644 --- a/src/qml/jsruntime/qv4regexp_p.h +++ b/src/qml/jsruntime/qv4regexp_p.h @@ -14,21 +14,18 @@ // We mean it. // -#include <QString> -#include <QVector> - -#include <wtf/RefPtr.h> -#include <wtf/FastAllocBase.h> -#include <wtf/BumpPointerAllocator.h> - -#include <limits.h> +// Yarr.h is not self-contained. Make sure it sees uint8_t +#include <cstdint> #include <yarr/Yarr.h> #include <yarr/YarrInterpreter.h> #include <yarr/YarrJIT.h> -#include "qv4managed_p.h" -#include "qv4engine_p.h" +#include <private/qv4compileddata_p.h> +#include <private/qv4managed_p.h> + +#include <QtCore/qstring.h> +#include <QtCore/qvector.h> QT_BEGIN_NAMESPACE @@ -64,12 +61,16 @@ struct RegExp : Base { RegExpCache *cache; int subPatternCount; - uint flags; - bool valid; + +#if ENABLE(YARR_JIT) + bool isJittable() const { return !jitFailed; } + int interpreterCallCount; bool jitFailed; - quint8 matchCount; +#endif + + quint8 flags; + bool valid; - QString flagsAsString() const; int captureCount() const { return subPatternCount + 1; } }; Q_STATIC_ASSERT(std::is_trivial_v<RegExp>); @@ -96,7 +97,9 @@ struct RegExp : public Managed bool unicode() const { return d()->unicode(); } bool sticky() const { return d()->sticky(); } - static Heap::RegExp *create(ExecutionEngine* engine, const QString& pattern, uint flags = CompiledData::RegExp::RegExp_NoFlags); + static Heap::RegExp *create( + ExecutionEngine *engine, const QString &pattern, + CompiledData::RegExp::Flags flags = CompiledData::RegExp::RegExp_NoFlags); bool isValid() const { return d()->valid; } @@ -122,7 +125,7 @@ struct RegExpCacheKey { return !operator==(other); } QString pattern; - uint flags; + quint8 flags; }; inline RegExpCacheKey::RegExpCacheKey(const RegExp::Data *re) @@ -131,7 +134,7 @@ inline RegExpCacheKey::RegExpCacheKey(const RegExp::Data *re) {} inline size_t qHash(const RegExpCacheKey& key, size_t seed = 0) noexcept -{ return qHash(key.pattern, seed); } +{ return qHashMulti(seed, key.pattern, key.flags); } class RegExpCache : public QHash<RegExpCacheKey, WeakValue> { diff --git a/src/qml/jsruntime/qv4regexpobject.cpp b/src/qml/jsruntime/qv4regexpobject.cpp index 144cd39bcd..0f5050c704 100644 --- a/src/qml/jsruntime/qv4regexpobject.cpp +++ b/src/qml/jsruntime/qv4regexpobject.cpp @@ -91,7 +91,7 @@ void Heap::RegExpObject::init(const QRegularExpression &re) Scoped<QV4::RegExpObject> o(scope, this); QRegularExpression::PatternOptions options = re.patternOptions(); - uint flags = (options & QRegularExpression::CaseInsensitiveOption) + CompiledData::RegExp::Flags flags = (options & QRegularExpression::CaseInsensitiveOption) ? CompiledData::RegExp::RegExp_IgnoreCase : CompiledData::RegExp::RegExp_NoFlags; if (options & QRegularExpression::MultilineOption) @@ -222,9 +222,9 @@ static bool isRegExp(ExecutionEngine *e, const QV4::Value *arg) return re ? true : false; } -uint parseFlags(Scope &scope, const QV4::Value *f) +static CompiledData::RegExp::Flags parseFlags(Scope &scope, const QV4::Value *f) { - uint flags = CompiledData::RegExp::RegExp_NoFlags; + CompiledData::RegExp::Flags flags = CompiledData::RegExp::RegExp_NoFlags; if (!f->isUndefined()) { ScopedString s(scope, f->toString(scope.engine)); if (scope.hasException()) @@ -269,7 +269,7 @@ ReturnedValue RegExpCtor::virtualCallAsConstructor(const FunctionObject *fo, con ScopedValue f(scope, argc > 1 ? argv[1] : Value::undefinedValue()); Scoped<RegExpObject> re(scope, p); QString pattern; - uint flags = CompiledData::RegExp::RegExp_NoFlags; + CompiledData::RegExp::Flags flags = CompiledData::RegExp::RegExp_NoFlags; if (re) { if (f->isUndefined()) { diff --git a/src/qml/qml/qqmlobjectcreator.cpp b/src/qml/qml/qqmlobjectcreator.cpp index 5616d2fd15..d986ed9b39 100644 --- a/src/qml/qml/qqmlobjectcreator.cpp +++ b/src/qml/qml/qqmlobjectcreator.cpp @@ -3,36 +3,36 @@ #include "qqmlobjectcreator_p.h" -#include <private/qqmlengine_p.h> -#include <private/qqmlvmemetaobject_p.h> -#include <private/qv4function_p.h> -#include <private/qv4functionobject_p.h> -#include <private/qv4qobjectwrapper_p.h> +#include <private/qjsvalue_p.h> +#include <private/qqmlanybinding_p.h> #include <private/qqmlbinding_p.h> -#include <private/qqmlstringconverters_p.h> #include <private/qqmlboundsignal_p.h> -#include <private/qqmlcomponentattached_p.h> #include <private/qqmlcomponent_p.h> +#include <private/qqmlcomponentattached_p.h> #include <private/qqmlcustomparser_p.h> -#include <private/qqmlscriptstring_p.h> -#include <private/qqmlpropertyvalueinterceptor_p.h> -#include <private/qqmlvaluetypeproxybinding_p.h> #include <private/qqmldebugconnector_p.h> #include <private/qqmldebugserviceinterfaces_p.h> +#include <private/qqmlengine_p.h> +#include <private/qqmlpropertybinding_p.h> +#include <private/qqmlpropertyvalueinterceptor_p.h> #include <private/qqmlscriptdata_p.h> +#include <private/qqmlscriptstring_p.h> #include <private/qqmlsourcecoordinate_p.h> -#include <private/qjsvalue_p.h> +#include <private/qqmlstringconverters_p.h> +#include <private/qqmlvaluetypeproxybinding_p.h> +#include <private/qqmlvme_p.h> +#include <private/qqmlvmemetaobject_p.h> +#include <private/qv4function_p.h> +#include <private/qv4functionobject_p.h> #include <private/qv4generatorobject_p.h> +#include <private/qv4qobjectwrapper_p.h> +#include <private/qv4referenceobject_p.h> #include <private/qv4resolvedtypereference_p.h> -#include <private/qqmlpropertybinding_p.h> -#include <private/qqmlanybinding_p.h> -#include <QtQml/private/qqmlvme_p.h> - -#include <QScopedValueRollback> #include <qtqml_tracepoints_p.h> -#include <QScopedValueRollback> -#include <QLoggingCategory> + +#include <QtCore/qscopedvaluerollback.h> +#include <QtCore/qloggingcategory.h> Q_STATIC_LOGGING_CATEGORY(lcQmlDefaultMethod, "qt.qml.defaultmethod") @@ -947,8 +947,12 @@ bool QQmlObjectCreator::setPropertyBinding(const QQmlPropertyData *bindingProper return false; } - if (valueType) - valueType->write(_qobject, bindingProperty->coreIndex(), QQmlPropertyData::BypassInterceptor); + if (valueType) { + valueType->write( + _qobject, bindingProperty->coreIndex(), + QQmlPropertyData::BypassInterceptor, + QV4::ReferenceObject::AllProperties); + } return true; } diff --git a/src/qml/qml/qqmlvaluetype_p.h b/src/qml/qml/qqmlvaluetype_p.h index 4b5442223d..f6634bacd9 100644 --- a/src/qml/qml/qqmlvaluetype_p.h +++ b/src/qml/qml/qqmlvaluetype_p.h @@ -19,7 +19,6 @@ #include <private/qqmlnullablevalue_p.h> #include <private/qmetatype_p.h> -#include <private/qv4referenceobject_p.h> #include <QtCore/qobject.h> #include <QtCore/qrect.h> @@ -75,8 +74,7 @@ public: ~QQmlGadgetPtrWrapper(); void read(QObject *obj, int idx); - void write(QObject *obj, int idx, QQmlPropertyData::WriteFlags flags, - int internalIndex = QV4::ReferenceObject::AllProperties) const; + void write(QObject *obj, int idx, QQmlPropertyData::WriteFlags flags, int internalIndex) const; QVariant value() const; void setValue(const QVariant &value); diff --git a/src/qml/qml/qqmlvmemetaobject.cpp b/src/qml/qml/qqmlvmemetaobject.cpp index e0a11ac4aa..977733ef91 100644 --- a/src/qml/qml/qqmlvmemetaobject.cpp +++ b/src/qml/qml/qqmlvmemetaobject.cpp @@ -372,7 +372,10 @@ bool QQmlInterceptorMetaObject::doIntercept(QMetaObject::Call c, int id, void ** // current value is explicitly set. // So, we cannot return here if prevComponentValue == newComponentValue. valueType->writeOnGadget(valueProp, std::move(prevComponentValue)); - valueType->write(object, id, QQmlPropertyData::DontRemoveBinding | QQmlPropertyData::BypassInterceptor); + valueType->write( + object, id, + QQmlPropertyData::DontRemoveBinding | QQmlPropertyData::BypassInterceptor, + QV4::ReferenceObject::AllProperties); vi->write(newComponentValue); return true; diff --git a/src/qmlcompiler/qqmljsbasicblocks.cpp b/src/qmlcompiler/qqmljsbasicblocks.cpp index 2c07dd00b7..9f83715e92 100644 --- a/src/qmlcompiler/qqmljsbasicblocks.cpp +++ b/src/qmlcompiler/qqmljsbasicblocks.cpp @@ -2,9 +2,10 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "qqmljsbasicblocks_p.h" -#include "qqmljsutils_p.h" -#include <QtQml/private/qv4instr_moth_p.h> +#include <private/qqmlglobal_p.h> +#include <private/qqmljsutils_p.h> +#include <private/qv4instr_moth_p.h> QT_BEGIN_NAMESPACE diff --git a/tests/auto/qml/qqmlvaluetypeproviders/tst_qqmlvaluetypeproviders.cpp b/tests/auto/qml/qqmlvaluetypeproviders/tst_qqmlvaluetypeproviders.cpp index bd3e2b50ff..0d45e519a4 100644 --- a/tests/auto/qml/qqmlvaluetypeproviders/tst_qqmlvaluetypeproviders.cpp +++ b/tests/auto/qml/qqmlvaluetypeproviders/tst_qqmlvaluetypeproviders.cpp @@ -1,16 +1,22 @@ // Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only -#include <qtest.h> -#include <QQmlEngine> -#include <QQmlComponent> -#include <QQmlContext> -#include <QDebug> -#include <QScopedPointer> +#include "testtypes.h" + +#include <private/qmlutils_p.h> #include <private/qqmlglobal_p.h> #include <private/qquickvaluetypes_p.h> -#include <QtQuickTestUtils/private/qmlutils_p.h> -#include "testtypes.h" +#include <private/qv4object_p.h> +#include <private/qv4scopedvalue_p.h> + +#include <QtTest/qtest.h> + +#include <QtQml/qqmlengine.h> +#include <QtQml/qqmlcomponent.h> +#include <QtQml/qqmlcontext.h> + +#include <QtCore/qdebug.h> +#include <QtCore/qscopedpointer.h> QT_BEGIN_NAMESPACE extern int qt_defaultDpi(void); diff --git a/tools/qmlls/qmllanguageservertool.cpp b/tools/qmlls/qmllanguageservertool.cpp index ad53e75e3e..a0a0a3a234 100644 --- a/tools/qmlls/qmllanguageservertool.cpp +++ b/tools/qmlls/qmllanguageservertool.cpp @@ -1,14 +1,22 @@ // Copyright (C) 2021 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 -#include <QtQmlLS/private/qqmllanguageserver_p.h> +#include <private/qhttpmessagestreamparser_p.h> +#include <private/qqmlglobal_p.h> +#include <private/qqmljscompiler_p.h> +#include <private/qqmljsimporter_p.h> +#include <private/qqmljslogger_p.h> +#include <private/qqmljsresourcefilemapper_p.h> +#include <private/qqmljsscope_p.h> +#include <private/qqmllanguageserver_p.h> +#include <private/qqmltoolingsettings_p.h> +#include <private/qqmltoolingutils_p.h> + #include <QtCore/qdebug.h> #include <QtCore/qfile.h> #include <QtCore/qdir.h> #include <QtCore/qfileinfo.h> #include <QtCore/qcoreapplication.h> -#include <QtQmlToolingSettings/private/qqmltoolingsettings_p.h> -#include <QtQmlToolingSettings/private/qqmltoolingutils_p.h> #include <QtCore/qdiriterator.h> #include <QtCore/qjsonobject.h> #include <QtCore/qjsonarray.h> @@ -20,13 +28,6 @@ #include <QtCore/qthreadpool.h> #include <QtCore/qtimer.h> -#include <QtJsonRpc/private/qhttpmessagestreamparser_p.h> - -#include <QtQmlCompiler/private/qqmljsresourcefilemapper_p.h> -#include <QtQmlCompiler/private/qqmljscompiler_p.h> -#include <QtQmlCompiler/private/qqmljslogger_p.h> -#include <QtQmlCompiler/private/qqmljsscope_p.h> -#include <QtQmlCompiler/private/qqmljsimporter_p.h> #if QT_CONFIG(commandlineparser) # include <QtCore/qcommandlineparser.h> #endif |