aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Merge remote-tracking branch 'origin/5.11' into 5.12" into ↵Liang Qi2018-10-011-1/+1
|\ | | | | | | refs/staging/5.12
| * Merge remote-tracking branch 'origin/5.11' into 5.12Liang Qi2018-10-011-1/+1
| |\ | | | | | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickevents_p_p.h Change-Id: I8c699aeb46903e2ea80a97a346cb5af460859a98
| | * Doc: Remove wrong ';' from Q_PROPERTY exampleKai Koehne2018-09-271-1/+1
| | | | | | | | | | | | | | | | | | | | | This won't compile. Change-Id: I823435673ebe47900dd8ba2a2a9f6f49e4a31539 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* | | Doc: Fix QDoc warningsPaul Wicking2018-10-012-2/+2
|/ / | | | | | | | | Change-Id: I19545953bde10d4ccc2f37843dcda2569dc77df4 Reviewed-by: Martin Smith <martin.smith@qt.io>
* | Doc: Remove references to Qt Quick 1Kai Koehne2018-10-0110-25/+0
| | | | | | | | | | | | | | | | | | | | Qt Quick 1 is dead since Qt 5.0, so it doesn't make much sense anymore to link to different names there, or highlight behavioral differences. Task-number: QTBUG-70780 Change-Id: Iac5e0b226621f127714e722a11208ca1b21d977f Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | Make a method constErik Verbruggen2018-09-281-1/+1
| | | | | | | | | | Change-Id: I70043699d15daf858c47d30018060aef31810abb Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Remove unused variable 'EmptyTag'Liang Qi2018-09-271-1/+0
| | | | | | | | | | Change-Id: I5970e3261a8a0891965c99d4d8c352ebf4cc6681 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | Remove unused member variableLars Knoll2018-09-271-1/+0
| | | | | | | | | | Change-Id: I6bf4f97d147f13a19a30e3bfdcadefe55fb656f8 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | Get rid of ArrayData::ComplexLars Knoll2018-09-274-4/+4
| | | | | | | | | | | | | | It's been pretty much unused. ArrayData::Simple does the job. Change-Id: I0fbd0b7787499244f4c8ca00b3ba7330a6640b75 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | Speed up instanceof operationsLars Knoll2018-09-277-32/+67
| | | | | | | | | | | | | | | | | | | | | | Introduce a shortcut if the rhs is a functionobject with the regular function proto as prototype. Add an optimized instanceOf implementation when we already have some checks done, and inline some methods. Change-Id: Iab9b648ae7bbec749b319e883b6ae90a23875454 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | Unify layout of function objectsLars Knoll2018-09-273-12/+19
| | | | | | | | | | | | | | | | | | | | Ensure we have the proto property at always the same place. This will be used in a subsequent commit to optimize accesses to the prototype property e.g. when doing instanceof operations or constructor calls. Change-Id: I6e9a19e0b7d0e8ab583648a60d1978f5cf838b06 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | Refactor deletion of propertiesLars Knoll2018-09-274-40/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | In line with the previous commit, allow entries with a valid PropertyKey, but invalid attributes in the InternalClass. Those entries mark a deleted property. This cleans up/unifies some of the code in the internal class implementation and allows re-using the slot if a deleted property gets added again. Change-Id: I1bada697486e3cafce7689bae87b7f884200dd99 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | Don't move any property slots in Objects anymoreLars Knoll2018-09-272-70/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Until now, changing an existing property into an accessor property would cause the slots in the object to get re-arranged to make space for the additional setter required. Change this by dropping the requirement that getter and setter slot have to be next to each other. This has the advantage, that any slot we define to be at a certain position in the internal class/object will stay there and we can use that assumption to optimize accesses to the slot. Change-Id: Ib37c2a49fc6aae42ea4b2da36ac1dc3036540c12 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | Get rid of remaining assumptions about setter being next to gettersLars Knoll2018-09-2710-111/+136
| | | | | | | | | | | | | | | | The only place where we now assume that getters and setters are next to each other in the MemberData is in the internal class. Change-Id: I3285f3abb1cbfe051853e808339cd360eb602262 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | Differentiate between finding for get and set in InternalClassLars Knoll2018-09-277-26/+38
| | | | | | | | | | | | | | | | This is required, so we can get rid of the requirement that getter and setter live next to each other in the member data. Change-Id: I2ed57a171628af4dfecd1836d00e958c6bed9d4f Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | Refactor InternalClass::find()Lars Knoll2018-09-2711-66/+105
| | | | | | | | | | | | | | | | | | Specialize find() into several methods for different purposes. Prepares for further cleanups and being able to split up getter and setter for accessor properties. Change-Id: Id4ec5509ac1a1361e2170bbfc2347b89b520c782 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | Small refactoring of PropertyHash::lookup()Lars Knoll2018-09-272-10/+13
| | | | | | | | | | Change-Id: I0c8cbf0914b8de4613ab203876636746f41d9718 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | QML: Demote incubation problems to info levelUlf Hermann2018-09-272-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the context or object in question gets destroyed during incubation, that is not a major problem. We just clean up the mess and continue. Especially, failure to create a delegate for an item view is not fatal. This routinely happens if the whole view has been dropped between object creation and incubation. Since 0412de08fd65c5fef9d010a68b40a256f521ef61 info and warning levels are properly separated. Task-number: QTBUG-49224 Change-Id: Ie59dfca8edf91b80dcf33e742766863feba9c8fa Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Doc: Remove documentation for deprecated QML typesVenugopal Shivashankar2018-09-258-67/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | VisualDataModel, VisualDataGroup, and VisualItemModel are replaced with DelegateModel, DelegateModelGroup, and ObjectModel respectively (since 7cad0e52c5a020bd29635e9912fd8946a6b48124). Also renamed/deleted a few snippet files and an image. Task-number: QTBUG-37725 Change-Id: I5fa93993a31d8f9b08e7a282d5550ddd9bfb813f Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Limit the repeater model size for integer modelsErik Verbruggen2018-09-241-1/+20
| | | | | | | | | | | | | | | | | | Otherwise you might be able to put INT_MAX in, which would cause problems with things like memory allocations. Task-number: QTBUG-54752 Change-Id: I758d04af65049181c0c741ff42e92a6450963201 Reviewed-by: Michael Brasser <michael.brasser@live.com>
* | Fix use of lexically scoped variables in modulesSimon Hausmann2018-09-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Their use may trigger setting c->requiresExecutionContext on the module context, which is correct. However, unlike functions, modules at instantiation time always have their context created ahead of time (to populate imports). Therefore we must not emit call context creating byte code instructions where we'd end up storing exports in the wrong place. Change-Id: Id1264f1cfa6a7f1cd94247ffe71938bc9c5c3ff9 Fixes: QTBUG-70632 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Better inheritance structure for functionsLars Knoll2018-09-236-33/+63
| | | | | | | | | | | | | | | | Give Arrow functions their own representation. This also prepares for further optimizations especially for the instanceof operator. Change-Id: I1f70c0271169a237e1acdeb7fe855be957ba2ea5 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Cleanup init method for ScriptFunctionLars Knoll2018-09-233-6/+16
| | | | | | | | | | Change-Id: I913f9429a9238860a5b4e9dc84d217ec824f25c1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Remove unused argumentLars Knoll2018-09-232-9/+8
| | | | | | | | | | Change-Id: I1f2c796b50d05c238fad36434b2545604a401fbf Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | Make Object::getOwnProperty() constLars Knoll2018-09-2319-25/+25
| | | | | | | | | | | | | | | | Object::getOwnProperty never modifies the object, so make it a const member function. Change-Id: I175bb45d61a66a1d9f577c087129562d44d62e17 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | Cleanups in Value/PrimitiveLars Knoll2018-09-1773-582/+545
| | | | | | | | | | | | | | | | | | | | | | | | Get rid of Primitive and move the corresponding methods directly into Value. Mark many methods in Value as constexpr and turn Value into a POD type again. Keep Primitive as a pure alias to Value for source compatibility of other modules that might be using it. Change-Id: Icb47458947dd3482c8852e95782123ea4346f5ec Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Some more optimizations to Object::internalPut()Lars Knoll2018-09-161-0/+12
| | | | | | | | | | Change-Id: Ib1b224ad27428ca37450f269b491cfa9d82e559a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Optimize Object::virtualGet()Lars Knoll2018-09-162-22/+36
| | | | | | | | | | | | | | | | Optimize virtualGet() for the common case where the proto chain are all regular objects. Change-Id: I51eea9a4b96033be4effc2072fedc5b9b08e8440 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Store InternalClass::nameMap in a MemberDataLars Knoll2018-09-163-20/+124
| | | | | | | | | | | | | | | | | | | | This helps make that memory known to the GC as well, and makes marking of internal classes much more efficient, as we don't mark the property keys repeatedly (even if they are shared between different internal classes) Change-Id: Ibb7e5383672d7657926bd08bf13f73f7680a9f31 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Optimize the JIT helpersLars Knoll2018-09-143-14/+24
| | | | | | | | | | | | | | | | | | Match the argument order to the lookup functions being called to minimize register shuffling that needs to be done inside the function. Change-Id: I0c55234d0c86b524dad021a519c6416d62d34c52 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Optimize some LookupsLars Knoll2018-09-141-1/+12
| | | | | | | | | | Change-Id: Ia8dfe95d6a51a8645ece983e050bf27d868715f8 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Small optimization in Function.apply()Lars Knoll2018-09-141-1/+3
| | | | | | | | | | Change-Id: I78cd0224399865e2b87bbf2771f70009a9374866 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Don't let GC runs be dominated by internal classesLars Knoll2018-09-141-2/+2
| | | | | | | | | | Change-Id: Icdd0f303f06605e8fdf2f1b324274ad95bfdebf3 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Improve performance of IdentifierTable::sweep()Lars Knoll2018-09-142-21/+22
| | | | | | | | | | Change-Id: I634f30ceb520af440c668e597a82b09b3c0024c9 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | properly align string table in compiled dataRolf Eike Beer2018-09-142-2/+4
| | | | | | | | | | Change-Id: Ie6534d5443ad046211620c4e0b586d189d0adbef Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Doc: Use a macro to resolve the QML import versionTopi Reinio2018-09-143-18/+19
| | | | | | | | | | | | | | | | | | | | | | QDoc now supports macros for its command parameters, as well as passing parameters to \code and \qml commands. Use these together with the new \QtMinorVersion macro to automate bumping the QML import versions within documentation. Task-number: QTBUG-67818 Change-Id: I8b5300749880421a0d7cdacc1b2c0f96b3b7ef67 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Remove left over commentRainer Keller2018-09-141-1/+1
| | | | | | | | | | Change-Id: If0483546fd88ee0270938f2cd72fbf69936f2a20 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Inline StringOrSymbol::toPropertyKey()Lars Knoll2018-09-142-9/+7
| | | | | | | | | | | | | | | | | | Save some instructions when converting a Stirng to a property key. Change-Id: Ide05ba8a54b504f5e606bdcdab53a2a0afeb9436 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | Check for nullptr in enum conflict analysisRainer Keller2018-09-141-2/+10
| | | | | | | | | | | | | | Task-number: QTBUG-70547 Change-Id: Idc0c20d3aee354366daefc99e10eec74065bf579 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Liang Qi <liang.qi@qt.io>
* | Never inline this lookupLars Knoll2018-09-141-1/+1
| | | | | | | | | | | | | | | | | | It significantly decreases performance if this one gets inlined from some of the places we call it. Change-Id: I1e1102eaba45d15df25dafbed437ade1a4a511a9 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | use WTF::roundUpToMultipleOf() instead of open coding itRolf Eike Beer2018-09-131-10/+7
| | | | | | | | | | | | Change-Id: I3d6bbfcf02748e03c653763175c1904b4c2c8604 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | List possbile enum conflictsRainer Keller2018-09-121-1/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | When enums are overwritten a report is shown listing possible candidates and their source locations. Previously registered enum will be overwritten due to name clash: QQuickListView.Center Possible conflicting items: QQuickListView.TransformOrigin.Center from scope QQuickItem injected by QQuickListView QQuickListView.PositionMode.Center from scope QQuickItemView injected by QQuickListView Change-Id: I02217b1cf2c80a909ceb6f392083d76266cc622c Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Add qml-worker-script featureMorten Johan Sørvig2018-09-124-6/+13
| | | | | | | | | | | | | | | | | | Depends on features.thread. Change-Id: I65db68ac90c15af0ac0571ee021122f7ca2ca051 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Lorn Potter <lorn.potter@gmail.com> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | Enable relative url assert again on Q_OS_WASMMorten Johan Sørvig2018-09-121-5/+0
| | | | | | | | | | | | | | | | This reverts parts of commit eb6201b2af725d64e5e92f19a512b1ff23ceba51 Change-Id: Ib6ffd7ce297c597841de147c2bdd1ab22cee5e52 Reviewed-by: Lorn Potter <lorn.potter@gmail.com> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Remove hardcoded Q_OS_WASM “qml/” import pathMorten Johan Sørvig2018-09-121-7/+1
| | | | | | | | | | | | | | | | | | | | The qrc resources path is sufficient for now. This reverts parts of commit eb6201b2af725d64e5e92f19a512b1ff23ceba51 Change-Id: I400eb36edf0035f8ad6a4bbd04da9f81701bef89 Reviewed-by: Lorn Potter <lorn.potter@gmail.com> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Add a shortcut into Object::internalPut() for the common casev5.12.0-alpha1Lars Knoll2018-09-111-1/+43
| | | | | | | | | | | | | | | | This avoids a lot of the slowdown of the more generic code path. Change-Id: I1a22f55900d3dc829d7733f9d79b8de5d79dc44c Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | Micro optimization when initializing the Cpp frameLars Knoll2018-09-112-5/+4
| | | | | | | | | | Change-Id: I07db2df7eec2bdbeb84bd576d9e4f7912f79fc78 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | Refactor SharedIngternalClassDataLars Knoll2018-09-111-41/+74
| | | | | | | | | | | | | | | | | | Prepare it to be able to specialize the private class for the property keys, to be able to improve performance of InternalClass::markObject() Change-Id: I8789f53b7d3377f6607fbc94e8475af5f14f2301 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into 5.12Qt Forward Merge Bot2018-09-111-0/+4
|\| | | | | | | Change-Id: Ieaf0811cf045af1e6df4db4ab67d7c38ba0d1fbf
| * Merge 5.11 into 5.11.2Frederik Gladhorn2018-08-271-0/+17
| |\ | | | | | | | | | Change-Id: I886fb173e156fb719d5e1d84cb1b0f3052a606b4