aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* QQmlInstanceModel: add variantValue()wip/propertycache-refactorMitch Curtis2019-04-026-17/+18
| | | | | | | | | | | | This is necessary in order to add valueRole API to Qt Quick Controls 2's ComboBox. Make stringValue() non-virtual and have it just call variantValue().toString(). Task-number: QTBUG-73491 Change-Id: Ic4ecf8370eb0bb8045a967bd589e54dfc1ac5263 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Doc; Update contentHeight and contentWidth docsVenugopal Shivashankar2019-03-291-24/+26
| | | | | | | | | | Clarified that contentHeight and contentWidth define the size of the table but not the view's. The view's width and height defines the size of the viewport, while the contentWidth and contentHeight defines the size of the table based on the size of the data model. Change-Id: I17aa84d7e7efcb9369f96ff3b1206e9965015c8f Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-03-2921-146/+480
|\ | | | | | | Change-Id: I9ba374f0c652628b7c84c36893c32b22529e384f
| * Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-03-2812-32/+179
| |\ | | | | | | | | | Change-Id: I910618824785f9119b1e1da9a82e998fd645a96f
| | * Blacklist tst_qquickfolderlistmodel::nameFilters() on msvc2015/17Ulf Hermann2019-03-271-0/+3
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-74739 Change-Id: Ib0f1d39cb5bc9864195b3c62d254fa38370faf0d Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | * Check for numeric limits when growing SharedInternalClassDataPrivateUlf Hermann2019-03-273-16/+41
| | | | | | | | | | | | | | | | | | | | | | | | We can effectively only deal with values of < 2GB for m_alloc * sizeof(Data). This is not much more than the values seen in the wild. Change-Id: Ia6972df33d34a320b5b087d38db81aae24ce5bbe Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * Re-use existing IC when freezing propertiesUlf Hermann2019-03-273-5/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is no reason to start from the empty class in that case. Furthermore, if the properties are already frozen, starting from the empty class will walk the IC hierarchy to the current IC. However, if the garbage collector has removed the intermediate classes in the mean time, we end up at a new IC which is equivalent but not the same. Therefore, the freezing never terminates. Task-number: QTBUG-74190 Change-Id: Id544bd00d3b4b563fb06dfce0edd0385e1d32a6c Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * Scope intermediate values when allocating objectsUlf Hermann2019-03-274-7/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise the garbage collector might interfere and we might end up with dangling pointers in random places. Task-number: QTBUG-74190 Change-Id: I253c526ef930b8f0be14e96a42af8b66fda3b22d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * Fix incorrect PathView.currentIndex assignment with StrictlyEnforceRangeShawn Rutledge2019-03-273-4/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | If currentIndex is quickly assigned a different index and then the previous current index again, it should not move. Fixes: QTBUG-74508 Change-Id: I8d610e3fe452c8631e082c648e77d2cb70ae57c5 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-03-2710-121/+170
| |\| | | | | | | | | | Change-Id: I2f0b4f8543a448c9acffe0932e0fd67c0b7412f4
| | * Trigger the garbage collector when allocating InternalClass objectsUlf Hermann2019-03-265-114/+152
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As we check the icAllocator's slots on shouldRunGC() we should also check shouldRunGC() when adding slots. Otherwise we might never run the GC when only allocating InternalClasses. In addition, account for the "unmanaged" size of the PropertyAttributes that are part of the InternalClass objects. Those can be large. In cases where an excessive number of large InternalClass objects is created the garbage collector is now invoked frequently, which costs a significant number of CPU cycles, but prevents the memory usage from growing indefinitely. Task-number: QTBUG-58559 Change-Id: Icf102cb6100f6dba212b8bffe1c178897880eda0 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * Restore rich Text creation speedShawn Rutledge2019-03-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 634b59f187c8697f03a606cbacb5f0a69650ea7c caused a significant performance regression during layout of any Text item with RichText, by calling QQuickTextDocumentWithImageResources::setPageSize() with an accurate width in ensureDoc(); but ensureDoc() is called multiple times, and doesn't need to calculate actual layout. The accurate width is needed (at least) when doing layout of HTML tables that contain percentage-based column widths. For that purpose it's enough to set the correct "page" size in updateSize(). Fixes: QTBUG-74638 Task-number: QTBUG-72457 Change-Id: I34ab085316018576eba64a67200c527bb64b9533 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * Enable lookups for imported scripts and worker scriptsSimon Hausmann2019-03-254-6/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is straight-forward to enable, with the minor adjustment that we need to handle the case where a global lookup is done without a calling qml context (worker script). We don't know at compile time whether a script will be imported directly or used as a worker script, so we have to generate the global qml lookup instruction regardless and handle it at run-time. Change-Id: Ia033afa214d919d906c676498dd3eceb1c5639d8 Reviewed-by: Michael Brasser <michael.brasser@live.com> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * | Fix text wrap: do not break on last line if right elide is enabledEirik Aavitsland2019-03-262-0/+138
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For multiline texts with word wrapping, it is not so meaningful to add breaks in the last line if it is anyway going to be elided. Fix by using the WrapAnywhere strategy for the last line for such situations. Fixes: QTBUG-72736 Change-Id: I1263c81277b6ca89ba461529fced1094263c026f Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | | V4 tracing: Add a scheduler for the tracing JIT IRErik Verbruggen2019-03-2814-21/+3559
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a scheduler for the graph nodes, which first reconstructs the control-flow graph, and then places all remaining nodes inside the basic blocks. The output of this pass is an MIFunction (MI = Machine Interface), which uses a representation suitable for feeding to an assembler. Note however that it still uses "virtual registers" at this point, so the next pass will have to place those virtual registers in physical registers or on a stack. The code for the dominator tree calculation, block scheduling, loop info and the blockset were lifted from the 5.10 JIT. Change-Id: I11c4cc3f64fedba6dd4275b35bbea85d30d76f7d Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | | QML: Delete plugin loaders on shutdownUlf Hermann2019-03-281-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | The StringRegisteredPluginMap owns its QPluginLoaders. Therefore, it should delete them in the end. ASAN complains if not. Change-Id: Iecd425e340d13db5cecd44bb123818e2c2a3b6a5 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* | | Make sure we can delete value type providers in any orderUlf Hermann2019-03-281-36/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the null provider had to be deleted last as it would leave a dangling pointer in the global static. This meant that we could not delete any other value providers on shutdown as the deletion order between different Q_GLOBAL_STATICs is undefined. Task-number: QTBUG-74348 Change-Id: I12aab6ab9ec4c71b90af69c5f824e0c6686433f5 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Fix logging output for GCUlf Hermann2019-03-271-9/+14
| | | | | | | | | | | | | | | | | | | | | | | | It failed to consider the IC allocator when calculating various sizes. Task-number: QTBUG-74190 Change-Id: Id34c31d639896eed8422790b4adc56c989402807 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-03-2656-274/+550
|\| | | | | | | | | | | Change-Id: Iaaf9749a812c21c065ded0374ce0aa07de7752cf
| * | wasm: skip tools, also with threads enabledMorten Johan Sørvig2019-03-251-1/+1
| | | | | | | | | | | | | | | | | | | | | Linking static binaries is (still) very slow. Change-Id: I8abc41553bd22e6ab2e87632c924d53c3429f3c9 Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-03-2542-243/+523
| |\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/qmltest/quicktest.cpp tests/auto/qml/qmlcachegen/qmlcachegen.pro Change-Id: I70e96e8817d59647f876b8b77b30cdeede8f0662
| | * Fix preview zoom problems on windowsTim Jenssen2019-03-225-74/+189
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apparently the window is moved to random places on multi-monitor setups on windows. Fixes: QDS-263 Change-Id: I21082c7031fefff3057074c147e82df7a88f4f78 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
| | * Try to stabilize qquickrectangle testSimon Hausmann2019-03-221-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Similar to commit 9921180a44d9097b1b83c2fa7b3f36dbb555140c, introduce liberal use of QTRY_VERIFY. Fixes: QTBUG-74605 Change-Id: I4552b1df4021f78cddff08f0b7d8629fafe25acb Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | * Enable lookups in QML files when compiling ahead of timeSimon Hausmann2019-03-221-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | This should have been enabled in the series earlier when for QTBUG-69898. Change-Id: Ide7507d5dcf439463c22b631d49d654624737d1f Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * Fix memory "leaks" in qmlcachegenSimon Hausmann2019-03-223-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The CompilationUnit class owns the unit data. An exception was made in bootstrap builds, where it was up to the caller to free the memory. This lead to cases in qmlcachegen where we didn't free the memory. This is best fixed by unifying the behavior. This fixes the build when using an ASAN enabled build, as the runtime aborts after calling qmlcachegen due to "leaks". Change-Id: I8b55b4e302a9569a1d4e09eeb488c479368b50f0 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * Update tests/auto/qml/ecmascripttests/test262Jani Heikkinen2019-03-221-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-73454 Task-number: QTBUG-71209 Change-Id: I12925ce49cc18f4bb6908a5515fc476b32a222dc Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> (cherry picked from commit 896d49a4e1113e3eb4832b83920b0dfd76987259)
| | * Fix some memory leaksSimon Hausmann2019-03-211-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | Use QScopedPointer where appropriate to avoid reporting false memory leaks with ASAN's leak checker. Change-Id: Ia3dfeafc66c2ad2ac8454861acce82b99678e517 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | * Initialize TranslationData padding before writing cache filesUlf Hermann2019-03-2119-36/+105
| | | | | | | | | | | | | | | | | | | | | | | | Otherwise the resulting files differ subtly. Fixes: QTBUG-74532 Change-Id: I12b4f1ba6dda781d63ad50cce87861ba24582bf7 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * Blacklist tst_QQuickMultiPointTouchArea::nonOverlapping for openSuseUlf Hermann2019-03-211-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | The test is flaky, just like it is on Ubuntu. Task-number: QTBUG-74072 Change-Id: I65b1f7a00a72abd57460957a6399a86c213d082b Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * Accelerate lookups of properties in outer QML contextsSimon Hausmann2019-03-212-52/+114
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we can determine with certainty that a property cannot be found in the innermost QML context, then we can avoid one entire iteration for all future lookups. Task-number: QTBUG-69898 Change-Id: I2a579aa9f60811a818e45235a60a93fc2ede3206 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | * Blacklist tst_QQuickMultiPointTouchArea::nested on opensuseUlf Hermann2019-03-211-0/+2
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-59960 Change-Id: I4a4d607c84600c83475d0ea5c10c9466d4dc626c Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * Doc: improve QUICK_TEST_MAIN_WITH_SETUP function descriptionsMitch Curtis2019-03-211-2/+7
| | | | | | | | | | | | | | | Change-Id: I83c8a3cb8d125df83deaefdbb08b4271eda8a5b4 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
| | * Document since versions for QUICK_TEST_MAIN_WITH_SETUP functionsMitch Curtis2019-03-211-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | - qmlEngineAvailable() 5.11 c260d3062de83d7f051e531007771455915285e5 - applicationAvailable() 5.12 ef06a6ba7bfb5e38b1bef2e21a764ec74479b158 - cleanupTestCase() 5.12 7bf8d4d3772959f06d4dd0168af7774adde29d76 Change-Id: I7b6b699121248c5ad35a7ee2c99eb3f3c77fd01f Reviewed-by: Paul Wicking <paul.wicking@qt.io>
| | * Don't warn if invokable test setup function doesn't existMitch Curtis2019-03-211-9/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was never the intention (as the code comments imply), but it was never tested. This is a cherry-pick of 50f234df500829a0023ed5d396c486f995ad71ef because it went to dev (5.13) when it should have originally went to 5.12. Change-Id: I8df0b3702129b1f1d086df73117d3ddb721317cb Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io> (cherry picked from commit 50f234df500829a0023ed5d396c486f995ad71ef) Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | * QUICK_TEST_MAIN_WITH_SETUP: fix qmlEngineAvailable() being called too lateMitch Curtis2019-03-215-8/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When I added the macro, I wasn't aware that TestCaseCollector was a thing. TestCaseCollector loads each QML file without running the tests (i.e. creates a QQmlComponent from the file without creating an object from that component). Since it still executes imports, the test can fail if types are registered or import paths added in qmlEngineAvailable(), since it's called too late. So, call it earlier. This should have no adverse effect on user code, as nothing of importance to the user will be skipped, and the documentation already details what can be expected by the time qmlEngineAvailable() is called. Change-Id: Ibd3a4b728bc87b90f89cc310fddf668c5879ad83 Fixes: QTBUG-74160 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | * V4: Do not invert non-reflexive comparison binopsErik Verbruggen2019-03-212-49/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is only useful for the few (4) comparisons where we have specialized instructions, and it's very error-prone. Change-Id: I37efe94f54ba0adf393d9236df2d13aa6685eb46 Fixes: QTBUG-74476 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * Bump versionKari Oikarinen2019-03-211-1/+1
| | | | | | | | | | | | Change-Id: Idf8a6ab90f22956444004c775d9b789d567671ad
| * | Eliminate QT_QML_BEGIN_NAMESPACE and QT_QML_END_NAMESPACEShawn Rutledge2019-03-2213-30/+26
| | | | | | | | | | | | | | | | | | | | | These are equivalent to the usual namespace macros. Change-Id: I3891397511e29694fe508414e77eb8483b877e03 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | | Doc: Language editsVenugopal Shivashankar2019-03-251-47/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | - Promoted TableModel as another alternative - Added \readonly commands - Minor edits Change-Id: Iaa1a320daa8b9afb17ace4273fdc33ca35b9c59c Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | | V4: Add headers from LLVM that define an intrusive list templateErik Verbruggen2019-03-2219-0/+3037
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These intrusive list is used in the follow-up patch, where it is used to hold a list of basic blocks in a function, and a list of instructions in the basic block. The advantage of this implementation is that it there is an easy and direct access to iterators when you have an element, it defines STL-like iterators, is double-linked, and you can easily insert before and after elements. We don't have something like this in Qt, and it's better to take an existing and well-tested implementation that making a home-grown one. Change-Id: Ie8c726eafe6d7558ae6a3550e8ecc2f15f362b17 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | | V4: Add a lowering pass to the traced JITErik Verbruggen2019-03-224-1/+315
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This pass converts high-level operations like e.g. a JSAdd to lower level operations, like a runtime call. This pass will be extended to take trace information, which can indicate that it can be lowered to e.g. an AddInt32. Change-Id: Ieae8df235217189c90048515e199f7e7c7f220b3 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into HEADUlf Hermann2019-03-22101-1786/+1773
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/compiler/qv4compileddata_p.h src/qml/jit/qv4baselinejit.cpp src/qml/jit/qv4jithelpers.cpp src/qml/jsruntime/qv4lookup.cpp src/qml/jsruntime/qv4runtime.cpp src/qml/jsruntime/qv4runtimeapi_p.h src/qml/jsruntime/qv4vme_moth.cpp src/qml/qml/qqmltypemodule_p.h Change-Id: If28793e9e08418457a11fc2c5832f03cab2fcc76
| * | Add some missing QT_{BEGIN,END}_NAMESPACE macrosJan Arve Sæther2019-03-216-0/+22
| | | | | | | | | | | | | | | Change-Id: I16820387279ca616af6ab379874c247c83df4a2f Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * | qmlimportscanner: Fix commentsKai Koehne2019-03-211-11/+10
| | | | | | | | | | | | | | | Change-Id: I435662abafbe7b76fed7b012bfed2f99aa7158a3 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * | Doc: Rename State Machine QML Types pageKai Koehne2019-03-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make name more in line with the import and with the other overview pages. This became apparent because the All QML Modules overview page now shows the name of the page, instead of the import: https://doc-snapshots.qt.io/qt5-5.13/modules-qml.html# Change-Id: Iee1362247ea6837dd9404885890b2adb7af2c544 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-03-2163-1299/+1142
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/compiler/qqmltypecompiler.cpp src/qml/compiler/qv4bytecodehandler.cpp src/qml/compiler/qv4codegen.cpp src/qml/compiler/qv4compileddata_p.h src/qml/compiler/qv4compiler.cpp src/qml/compiler/qv4instr_moth.cpp src/qml/compiler/qv4instr_moth_p.h src/qml/jit/qv4baselinejit.cpp src/qml/jit/qv4baselinejit_p.h src/qml/jsruntime/qv4function.cpp src/qml/jsruntime/qv4vme_moth.cpp Change-Id: I8fb4d6f19677bcec0a4593b250f2eda5ae85e3d2
| | * Accelerate access to initial context object properties in lookupsMichael Brasser2019-03-202-1/+57
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-69898 Change-Id: If92a0931bd4d64f6c176e93effb04df85ce27284 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | * Accelerate access to scope object properties in lookupsMichael Brasser2019-03-205-21/+99
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-69898 Change-Id: I94bf1aa85c9b2302894f3224e41de81a456211f9 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | * Accelerate lookup of singleton propertiesMichael Brasser2019-03-204-2/+69
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-69898 Change-Id: Id03ba543fa293da2690099c3e6f94b2725de562f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | * Fix lookup fallback into the global object in QML bindingsSimon Hausmann2019-03-203-2/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change addresses in particular qmlbench's fib10.qml, where usage of properties of the global object needs to go be accelerated in order to avoid regressing in performance. Task-number: QTBUG-69898 Change-Id: Ic43c64f4dd5459c4e92f87f03235ea836f971515 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>