aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-06-203-11/+28
|\ | | | | | | Change-Id: I71b1212085da85f03f4ff0e3ee5cb56a401998ae
| * Merge remote-tracking branch 'origin/5.12' into 5.13Liang Qi2019-06-193-11/+28
| |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/imports/sharedimage/qsharedimageloader.cpp src/quick/items/qquickitemviewfxitem_p_p.h Change-Id: I12ce7c32788f4a394188a934e689b4ebac78138b
| | * Fix crash caused by objects self-destructions during displacement animationsYulong Bai2019-06-173-11/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The root cause was that the QAbstractAnimationJob::finished() might delegate its destruction to change.listener->animationFinished(this), and the original author was aware of that and provided a RETURN_IF_DELETE macro to return early if itself got deleted. In the bug's case, change.listener->animationFinished(this) dispatched to QQuickItemViewPrivate::animationFinished() which called QQuickItemViewPrivate::release() and deleted the QAbstractAnimationJob object itself in the end. However, any objects derived from QAbstractAnimationJob, or holding a pointer to a QAbstractAnimationJob, may potentially fall into the code path calling QAbstractAnimationJob::finished(). Any QAnimationJobChangeListener that directly or indirectly deletes QAbstractAnimationJob should be very suspicious to this kind of "heap-use-after-free" bug. Should ensure that the QAbstractAnimationJob won't be referenced after deletion. In the bug's case, within the code path triggered by ListView displacement animation, the other affected classes by QAbstractAnimationJob are: QQuickItemViewFxItem, QQuickItemViewTransitionableItem, QQuickTransitionManager. To fix this, a new SelfDeletable class is factored out to simplify the self-deletion test logic. Any affected classes are made to have a public member m_selfDeletable. Any code paths that finally reach QAbstractAnimationJob::finished() are wrapped with related util macro. Change-Id: Idd33fc3f2d529fd7d8bb088c329101b1e70dd6c0 Task-number: QTBUG-44308 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | | Move AST -> CompiledData location transformation to scan functionsUlf Hermann2019-06-133-19/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | That's the only place where we use it and this way we can remove the AST dependency from the compiled data. Change-Id: I530a0f18a08672acd7031a552885b819e6fe2b84 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-06-143-5/+22
|\| | | | | | | | | | | | | | | | | | | | Conflicts: tests/auto/qml/qjsengine/tst_qjsengine.cpp Change-Id: I34df194046a91ee8a076ce28022eb99d68e7f362
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-06-135-7/+73
| |\| | | | | | | | | | | | | | | | | | | Conflicts: src/qml/jsruntime/qv4memberdata.cpp Change-Id: I4e9ffc89d65279a42516f5547e93fb47fb571834
| | * Add simple DelegateChooser example to documentationMichael Brasser2019-06-111-1/+35
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-73964 Change-Id: Ic789839de12e046cc1d8fced75ffa0c93960c165 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * JIT: Don't store accumulator on getTemplateLiteralUlf Hermann2019-06-121-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | We don't use the accumulator in that method. It could contain any random value. Fixes: QTBUG-75642 Change-Id: I41f958c1174cce76d0d77e14d5617d441aaf1e11 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * Allow destroying QJSValues from other threadsUlf Hermann2019-06-111-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QVariants are commonly passed around between threads and QVariants can wrap QJSValues. Therefore we need to allow this. The persistent value is freed immediately if we're still in the same thread. Otherwise a message is passed to the QJSEngine that owns it. If there is no QJSEngine we assume that we can free the value immediately. As such a thing can only happen via private API we can make sure this assumption holds. Fixes: QTBUG-75939 Change-Id: I14c09fd5d6ef7ba689f66656f2bcbb5c88bacf89 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * Fix use after free crash in QQmlDelegateModelNils Jeisecke2019-06-061-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When iterating over the cache in QQmlDelegateModel::_q_itemsInserted(), _q_itemsRemoved, _q_itemsMoved, _q_modelReset() and _q_itemsMoved, updating some of the item's modelIndex can trigger layout change in the view, which might in turn remove a QQmlDelegateModelItem from the cache, causing us to dereference an already deleted pointer. To prevent a crash, we always check whether the item is still valid in the original cache and skip it if it has been removed in the meanwhile. This fix is similar to 5df747fc but reduces runtime impact by performing the lookup only when d->m_cache has detached from the loop's copy. Fixes: QTBUG-76254 Change-Id: I9d7e0118e64e9ec7d8efae04e6ae319804f31981 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | * Avoid number conversion issueUlf Hermann2019-06-111-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ia3f9bde43719859104759033283e697be72f7f53 Fixes: QTBUG-76286 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | qtlite: Fix build with -no-feature-translationMikhail Svetkin2019-06-111-2/+2
| | | | | | | | | | | | | | | | | | Change-Id: I9d6adc8d0a74c457bdff68a1c712995ffaee7a6a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | | Port from QLatin1Literal to QLatin1StringGiuseppe D'Angelo2019-06-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | QLatin1Literal is an undocumented and deprecated typedef for QLatin1String, just use the original. Change-Id: Ib6e2b7ac369be12aed0e455c91cf31b807eae4ed Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | add std::function overload to qmlRegisterSingletonTypeFabian Kosmale2019-06-115-7/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changes enables passing stateful lambdas to qmlRegisterSingletonType, which helps when porting away from setContextProperty. Unfortunately, we cannot directly add an overload for std::function, as this causes ambiguity in the overload set when a lambda of the form auto f = [](QQmlEngine*, QJSEngine*) -> QObject* is passed to the function (which is what the examples do) We therefore use a template to support abribtrary callables f, then SFINAE them out if f is not convertible to the desired std::function, or when f is convertible to a plain C function pointer, thus removing the ambiguity Change-Id: I6ca95ad692d8bb785e420b85bf3d8c1d0007ce17 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Merge "Merge remote-tracking branch 'origin/5.13' into dev"Qt Forward Merge Bot2019-06-1117-36/+168
|\ \ \
| * | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-06-1117-36/+168
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/jsruntime/qv4value_p.h src/qml/qml/qqmlmetatype.cpp src/qml/qml/qqmltypewrapper.cpp src/quick/items/qquicktableview.cpp Change-Id: I684f8e01a711580512848bf1253f39b39fcbf4c7
| | * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-06-064-6/+54
| | |\| | | | | | | | | | | | | Change-Id: I59cb196ab17ed8504b33db01d827052eb6891efa
| | | * Doc: Remove superfluous double quotes in code snippetsPaul Wicking2019-06-042-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | Fixes: QTBUG-75957 Change-Id: I2c9c70461a828978d1413b8cbdb407663b4b7493 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| | | * Fix for loading translations automatically from resourcesTasuku Suzuki2019-06-011-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When qml file is in resources, translations under i18n was not loaded Task-number: QTBUG-76085 Change-Id: I75315ceb6a1e6ab10309634a3c445a82476d525c Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | | * Parser: Accept templated readonly propertiesUlf Hermann2019-05-311-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I37d313e3156a44eb4487b1be007aa93ace18d882 Fixes: QTBUG-76018 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-06-022-1/+20
| | |\| | | | | | | | | | | | | Change-Id: Icf36857844b6643d9fbe3c841b1d9b78943435d4
| | | * In qmlUnregisterType() also remove the type from undeletableTypesUlf Hermann2019-05-291-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-76074 Change-Id: I7f5ca6af0955524f9a417811c2e9f960c2b3efb3 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | * Add a workaround for ia64 to move Value bits 63-61 to 49-47 for pointersJason Duerstock2019-05-301-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-56264 Change-Id: Ifdede70d95f5846e160772c43d22bc2a4123959b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * | Improve "Type error" when looking up a property of null or undefinedDavid Faure2019-05-311-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before: MenuItem.qml:98: TypeError: Type error After: MenuItem.qml:101: TypeError: Cannot read property 'height' of null The wording matches the similar error messages in qv4runtime.cpp. Change-Id: I3d9b3506195fe8e17e78117f2f51aba2adbc0564 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Laurent Montel <laurent.montel@kdab.com>
| | * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-05-2611-27/+91
| | |\| | | | | | | | | | | | | Change-Id: I208cd36d2b7add94f36e4d86cf0c790a1e4a7e86
| | | * Don't add local for anonymous function's "name"Ulf Hermann2019-05-213-10/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead, populate their "name" property directly from the surrounding object pattern if applicable, without adding locals. This fixes some ecmascript tests where functions were assigned to the key "eval" in an object. The JS engine then rejected that because you shouldn't use eval in strict mode. That should be close enough to test for regressions. Fixes: QTBUG-75880 Change-Id: Iacc45a3f7b0eb90cddc6ecf6d2bada616d2cf355 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | | * Fix lookups of properties in QML singletonsSimon Hausmann2019-05-216-11/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An unqualified name that points to a QML singleton will evaluate to a QQmlTypeWrapper JS object. A member lookup in such an object is not guaranteed to always produce the same property. The property cache check may protect us from that, but we must still retrieve the QObject singleton for every lookup. Task-number: QTBUG-75896 Change-Id: Ibd9bac6e5c2047f838758811790b299ace636446 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | | * Print a warning when encountering a non-relative URL in a qmldir fileUlf Hermann2019-05-161-3/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is not supported because supporting it would encourage users to create components that won't work on other systems or that will confuse qmlplugindump. QML still parses and loads those components, but you should really use relative paths. Task-number: QTBUG-48809 Change-Id: I9c81671cb5c4ea59b8c884ff24ad02e82047e9d6 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | * Re-add cache for looking up attached properties objectsUlf Hermann2019-05-161-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | c018df5b4075ae962966d4df7653d476dab02840 removed an optimization in qmlAttachedPropertiesObject. The attached properties ID was implicitly cached as it was static in a method templated by the type the attached properties were registered for. We don't actually need the ID for this, as we can also cache the function pointer. Fixes: QTBUG-75609 Change-Id: I15e728ce4bbb89062a84ee6f113b1188faa32b92 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | | Clean up frozen(), sealed(), nonExtensible() and propertiesFrozen()Ulf Hermann2019-05-314-65/+45
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | They all had some interesting bugs and duplicated each other: a, propertiesFrozen() changed each property individually, creating a lot of unnecessary intermediate classes. frozen() changed them all at once. b, If a class happened to contain only properties that matched the characteristics of being "sealed" or "frozen", sealed(), frozen() and propertiesFrozen() would set the flags in place and return the same class. This is bad because it violates the assumption that an InternalClass is immutable and it breaks the recursive freezing algorithm we rely on for the global object. It would stop freezing child objects at any such class, even if the children were not frozen. c, propertiesFrozen() did not set any of the flags even though it effectively sealed and froze the class. Therefore, when requesting the same class as frozen() it would iterate through all the properties again. d, frozen() implicitly also sealed the object and made it non-extensible. sealed() also implicitly made it non-extensible. This is impractical as we want to allow objects to be extensible even though all their properties are frozen. Therefore we only set the flag that belongs to each method now. We do know, however, that a frozen object is implicitly sealed. Therefore we can short-circuit this transition. Furthermore, we need to remove the assert in InternalClass::init() as you can indeed use frozen objects as prototypes for others, but that needs to be recorded in the original InternalClass via the isUsedAsProto flag. In order to set this flag, we need to perform a transition and therefore, derive from the old InternalClass. The JavaScript isFrozen() method asks for an _implicitly_, "duck typed", frozen state, which is different from what our "isFrozen" flag denotes. Therefore we add a separate const method that just checks whether all properties are frozen. Task-number: QTBUG-76033 Change-Id: I375fef83fb99035d470490fdf2348766b090831e Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | Remove unused includes and Q_DECLARE_METATYPEs re: QLinkedListMarc Mutz2019-06-061-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | They were all unused. Change-Id: I2b147b5a479f278c0607ef432faf1cb9e8e06236 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | fix wrong identifier in documentationFabian Kosmale2019-06-041-1/+1
| | | | | | | | | | | | | | | Change-Id: Ic5b72013e78450daa314fa8e747cfcb4d4b06928 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | | Eliminate qmldevtools_buildUlf Hermann2019-05-3127-66/+50
| | | | | | | | | | | | | | | | | | | | | | | | Move the relevant files into more fitting locations and build the devtools from only parser, compiler and qmldirparser. Change-Id: Ibf37a1187f36d02983f9f43c6622acb243785b7b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Split QV4::Value into a static and a dynamic partUlf Hermann2019-05-3126-637/+822
| | | | | | | | | | | | | | | | | | | | | | | | The static part can be used for compilation and won't resolve managed objects. This allows us to remove all the remaining V4_BOOTSTRAP. Change-Id: Id2f6feb64c48beb2a407697881aea8c0d791a532 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Remove null pointer checks for "this" from QQmlContextData::resolvedUrl()Pavel Tumakaev2019-05-231-15/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to ISO/IEC 14882 §5.2.5/3 "If E1 has the type “pointer to class X,” then the expression E1->E2 is converted to the equivalent form (*(E1)).E2;". Thus, as QQmlContextData::resolvedUrl() is non-static method, it cannot be called on a null pointer because it leads to undefined behavior, and “this“ in QQmlContextData::resolvedUrl() cannot be a null pointer. According to this document: https://gcc.gnu.org/gcc-6/porting_to.html , starting from version 6, GCC optimizations remove null pointer checks for "this", since "the this pointer can never be null, which is guaranteed by the language rules." Thus, on the one hand the “if (ctxt)“ check in QQmlContextData::resolvedUrl() does nothing, on the other “if (engine“ check leads to undefined behavior if ctxt/this == nullptr. Task-number: QTBUG-75983 Change-Id: Idfb1e26758d83223bb0845139d63e2e8e80dc714 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | | Remove now dead V4_BOOTSTRAP #if-eryUlf Hermann2019-05-136-29/+0
| | | | | | | | | | | | | | | | | | | | | Change-Id: I04f8f69ed8ee415ca330e2f7beeffc4ee4c38e65 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Remove V4_BOOTSTRAP condition around header verificationUlf Hermann2019-05-091-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's unclear why that was needed. Change-Id: I0b4d4ebe1992cd2252cfc3eb10baa7f1b3ae1a5a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Move valueAsNumber into ExecutableCompilationUnitUlf Hermann2019-05-136-22/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reduces our dependence on QV4::Value in the devtools. Change-Id: I4b3f937bc08c16f7e2543fdc5cc34c0cfb121f8f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Remove QUrl-related special casing in the compilerUlf Hermann2019-05-102-10/+1
| | | | | | | | | | | | | | | | | | | | | QUrl is being added to the bootstrap set. Change-Id: Ia96bbcf6e0ef808435ecddfa114fdcd213361bbf Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Restore value bindings when disabling a Binding elementErik Verbruggen2019-05-173-5/+156
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We previously only restored script bindings that were replaced by a Binding. Now we handle both. [ChangeLog] QML Binding elements now support restoring previous values of the bound property when the binding is disabled. This will be the default behavior in Qt 5.15. Reliance on the old behavior of only restoring binding, not literal values results in a warning now. Fixes: QTBUG-33444 Change-Id: I833403b0645c08eee486fbd4acf5d3c7de2ef73a Reviewed-by: Michael Brasser <michael.brasser@live.com>
* | | Inline dumpConstantTable() into the only place where it's usedUlf Hermann2019-05-173-34/+27
| | | | | | | | | | | | | | | | | | | | | | | | ... and don't copy byte arrays around for each character of padding prepended to a number. Change-Id: I6963d4c9d42aedd780bec9517b4b7a2a83f10185 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Add abstraction for temporarily setting StaticData when savingUlf Hermann2019-05-173-19/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | The StaticData flag needs to be saved to disk, but removed again afterwards so that we can free() the malloc'd data. This also allows us to avoid copying all the data into a byte array before saving. Change-Id: I96513f8d98acf0ea0b4514d96376b487e8444917 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Split CompiledData::CompilationUnit in twoUlf Hermann2019-05-1659-1221/+1489
| | | | | | | | | | | | | | | | | | | | | | | | We need a CompilationUnit that only holds the data needed for compilation and another one that is executable by the runtime. Change-Id: I704d859ba028576a18460f5e3a59f210f64535d3 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-05-165-15/+18
|\| | | | | | | | | | | Change-Id: I192cb06f3b92869699cb3e072f2c6c1e8dbb1ef4
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-05-161-0/+4
| |\| | | | | | | | | | Change-Id: Ia93dc734ce25b3134b0f905f473a0c30777ceaf1
| | * Elaborate on the meaning of values held by basic typesSimon Hausmann2019-05-131-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Explicitly mention the copying semantics as well as how they are called in the JavaScript language. Task-number: QTBUG-75308 Change-Id: I82b8c6324133d3265b66325c6f67b19b344e0470 Reviewed-by: Kavindra Palaraja <kpalaraja@luxoft.com> Reviewed-by: Paul Wicking <paul.wicking@qt.io>
| * | Compile fixJarek Kobus2019-05-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | It fixes the following issue: error: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Werror=sign-compare] Change-Id: I4b896f49ff753a5cf79cd1e40e76815f712eec89 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * | Do not take a reference of nullptrAllan Sandfeld Jensen2019-05-142-8/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | References are not allowed to be null, but we pass a nullptr as receiver in QQmlContextWrapper::resolveQmlContextPropertyLookupGetter. Detected with UBSAN. Change-Id: Iaa7945fb17e4b0e549e541e47589b2f47d32ea4e Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * | Fix illegal downcast on QQmlEngine destructionAllan Sandfeld Jensen2019-05-141-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | Make QQmlEnginePrivate::isEngineThread() legal to call during QQmlEngine destruction. Change-Id: I2bae9d70883cf8013f39f2046ebe83bb8dbcd46b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Don't include qv4enginebase_p.h in qmldevtoolsUlf Hermann2019-05-106-7/+9
| | | | | | | | | | | | | | | | | | | | | | | | We don't need it and we don't need to check for V4_BOOTSTRAP in there. Shuffle some includes around to provide everything we do need. Change-Id: I3e75f1c6f9dc518006aabc9dcee21e5153899ac5 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>