aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Allow freely mixing non-ShapePath objects in ShapeLaszlo Agocs2017-06-085-38/+55
| | | | | | | | | | | | | | | | | | | | The own list property must be kept. However, we can reuse QQuickItemPrivate's data accessors in order to start supporting code like: Shape { .. ShapePath { ... } ShapePath { ... } Rectangle { ... } Image { ... } // any other visual type // or non-visual: Timer { ... } } Change-Id: I6d502d697cae37bf16857770273a749cee1b3aa3 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* Use GradientStop and rename ShapeLinearGradient to LinearGradientLaszlo Agocs2017-06-0814-222/+60
| | | | | | | | | | | | | | | | | | | Thus application code becomes: ShapePath { ... fillGradient: LinearGradient { ... GradientStop { ... } } } which is even more clean and readable. The duplication for stops is now avoided. Change-Id: I50ae2f388e21683a37dc4787763dc71e16eef4f5 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* Merge remote-tracking branch 'origin/dev' into wip/scenegraphngLaszlo Agocs2017-06-08197-3240/+2679
|\ | | | | | | | | | | | | Conflicts: src/quick/scenegraph/adaptations/software/qsgsoftwarerenderablenode.cpp Change-Id: Id8107cb0de0fbfe7120a90a137b49c2b915ff2d3
| * Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-06-0735-286/+393
| |\ | | | | | | | | | Change-Id: I61ab3d0bd8cc02f640c60c037226eace09ec09ba
| | * Disable ahead-of-time cache generation on AndroidSimon Hausmann2017-06-061-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | It appears that not all phones are happy with the code that we generate. Until we can find a fix for that, let's disable the feature. Change-Id: If4aa5cc14edcb69843fb9ef32691657c8c507b83 Task-number: QTBUG-60918 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | * Move Q_REQUIRED_RESULT to the beginning of the declarationThiago Macieira2017-06-031-2/+2
| | | | | | | | | | | | | | | | | | | | | That's the correct place and works with C++11 attributes. Change-Id: I7814054a102a407d876ffffd14b6a2f74423c222 Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
| | * QQuickWindow/View: set a QObject-parent on the root itemJ-P Nurmi2017-06-025-0/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | People are often confused why eg. the objects from: window->contentItem()->findChildren() are not included in window->findChildren(). This change connects the item tree to the window's object tree to make findChild() and findChildren() produce expected results. The same technique is already used for QQuickFlickable's contentItem. [ChangeLog][QtQuick][QQuickWindow] Set the window as the QObject-parent of the contentItem to ensure consistent behavior for calling findChildren() on QQuickWindow and QQuickWindow::contentItem. [ChangeLog][QtQuick][QQuickView] Set the window's contentItem as the QObject-parent of the rootObject to ensure consistent behavior for calling findChildren() on QQuickWindow::contentItem and QQuickView::rootObject. Change-Id: Idb7834eb5e560088ca849e6ce90e6fa3b3ae3e91 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * Revert "QQuickWindow::createTextureFromImage(): return nullptr for null images"Mitch Curtis2017-06-022-12/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit e6acf80136db9f667d0d4664f6c68065355d6811. This breaks behavioral compatibility. Task-number: QTBUG-61083 Change-Id: I0161d536502bab31aaf4ebc38f91e6c8842f72b0 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| | * Merge remote-tracking branch 'origin/5.9.0' into 5.9Liang Qi2017-05-3116-214/+184
| | |\ | | | | | | | | | | | | Change-Id: I3f77593ca944114534fff5df26bbb09150ee4400
| | | * Revert "Temporarily restore QQuickPointerDevice::pointerEvent() accessor"v5.9.0-rc2v5.9.0-rc1v5.9.0Shawn Rutledge2017-05-202-11/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit ee6b07b3ce8ba80632868181d45d96253acb1064. This is to be integrated after the qtlocation change to remove the dependency on this private function. Task-number: QTBUG-57253 Change-Id: I756681fb2595d1326b7e5206bac57ccc318c0a46 Reviewed-by: Liang Qi <liang.qi@qt.io>
| | | * QML Settings: fix JS array handlingJ-P Nurmi2017-05-196-156/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before Qt 5.4, JS arrays were passed as QVariantLists. Since Qt 5.4, they are passed as QJSValues instead. Use QJSValue::toVariant() (the same way as QQuickItemView::setModel(QVariant) which was fixed in cf959b4b) to convert JS values to QSettings-compatible variants. Task-number: QTBUG-45316 Change-Id: Icc6f8ad09bfef089d9efcf5b90e3783bb3f73a9f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | * QQmlIRBuilder: Only query type name cache for type namesRobin Burchell2017-05-195-2/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The behavior here was always incorrect: type names must start with an uppercase letter, so querying the type name cache with a lowercase string is wrong. However, this was turned into a larger problem by making more extensive use of QQmlTypeNameCache in e74a1d0b342f2c95dc3a543c8c9ec07fd52d8fe0, as it contained a lot of new types (including composite types, which previously were only in the cache if they were singletons). Task-number: QTBUG-60547 Change-Id: I40be2d535e99d3e1af250d995d7149ecbe2965d7 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | * Revert "QQuickItem: Port a number of manual loops to range-for"Robin Burchell2017-05-191-37/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 8d92e595e0e8cf19f60db2fce4a543265c9130e9. This is broken in a few places, e.g. setEffectiveVisibleRecur emits, which means that it may run uncontrolled code, so we can't be sure the list isn't altered underneath us. Change-Id: I58b8b62e74581207c1b14902ea7b8b552761de8a Task-number: QTBUG-58811 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | | * don't try to pull in the regular config headers when bootstrappingOswald Buddenhagen2017-05-192-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-60675 Change-Id: I7ae9ab4f442d34f6eaa770652029b5dfccef346a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * | remove bogus QTPLUGIN+=qsqlite magicOswald Buddenhagen2017-05-301-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the code was originally meant to link the plugin if it's not built into qtsql. this logic did not survive the various build system refactorings, but it's also entirely pointless, because available static plugins are now automatically linked. Change-Id: I1d4f08ed5abdcc15c6b5f97bb4f6caa0a5db6f18 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * | Add sections and update purposes of featuresStephan Binner2017-05-302-17/+33
| | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I95923fa183172bb4fe5d0a6ae34c801e0cee2a63 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | * | Forward ShortcutOverride in QQuickWidgetLaszlo Agocs2017-05-292-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is now essential since otherwise these events are simply lost. Amends 0dbc575c1a8359534761167a5f5f1e29abedd51d Task-number: QTBUG-60988 Change-Id: Ib1d99d8fcd5bb92c9b52977796f2910f0fe71c48 Reviewed-by: J-P Nurmi <jpnurmi@qt.io> Reviewed-by: Andy Nichols <andy.nichols@qt.io>
| | * | Revert "Fix compilation of QtScxml"Liang Qi2017-05-231-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 3f9367cb32533b691cb8c761213f21a524e3d1cb. QtScxml adapted to new API. Task-number: QTBUG-60938 Change-Id: I417b604ceb9949ee3c0197ac9f88efdbe53ebe48 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * | Document the default value of x, y, width & heightJesus Fernandez2017-05-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The default values of the coordinates and size variables were missing. Change-Id: I1bba77b3db68d3f726c1211c6a0090e97f687b51 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | * | Set LC_TIME in ecmascripttests/test262.pyJüri Valdmann2017-05-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One test fails with LC_TIME=et_EE.UTF-8. The script already sets LANG, but LC_TIME has higher precedence. Change-Id: Ifdb37a1a9d69415d34883343e761d23c6353ef24 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * | Improve dirty region calculation in software rendererJüri Valdmann2017-05-233-36/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The software renderers dirty region calculation is done in integral logical coordinates, which leads to quite some trouble when handling scene graph elements with fractional coordinates (used by WebEngine for example). The optimal solution would probably be to either use integral physical coordinates or floating point logical coordinates, however this would seem to require substantial changes to QPainter and QBackingStore and so on. So, this patch instead changes the calculation to use something like interval arithmetic: instead of just rounding each logical coordinate to the nearest integer the renderer now uses (very carefully) both the upper and lower boundaries to make sure that the dirty regions always err on the side of caution. I expect this change to make rendering slower but only in situations where previously there would be rendering errors. Task-number: QTBUG-60393 Change-Id: I7f8e7d2739c810328c841130df9c1c7332439447 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
| | * | QtQml: Restrict alloca definition to MSVCFriedemann Kleint2017-05-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix developer build with MinGW: In file included from memory\qv4mm.cpp:60:0: jsruntime/qv4alloca_p.h:62:0: error: "alloca" redefined [-Werror] # define alloca _alloca ^ In file included from .../mingw32/i686-w64-mingw32/include/stdlib.h:686:0, from .../mingw32/i686-w64-mingw32/include/c++/cstdlib:72, from .../mingw32/i686-w64-mingw32/include/c++/bits/stl_algo.h:59, from .../mingw32/i686-w64-mingw32/include/c++/algorithm:62, from .../qtbase/src/corelib/global/qglobal.h:109, from ...\qtbase\include/QtCore/qglobal.h:1, from jsruntime/qv4global_p.h:54, from jsruntime/qv4engine_p.h:53, from memory\qv4mm.cpp:40: .../mingw32/i686-w64-mingw32/include/malloc.h:183:0: note: this is the location of the previous definition #define alloca(x) __builtin_alloca((x)) Amends change a225bddf67f4786c845193630d4ab20b99a2fc3a. Change-Id: I4a758776dbf78225f62883393eb50b7121297a1b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * | Software: Fix QQuickWidget rendering in QMdiAreaAndy Nichols2017-05-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is not safe to assume that the paintRegion is always the same as the updateRegion reported by the software renderer, since in some cases more needs to be flushed, such as in the case of the QMdiArea. Now we make sure to unite both of these regions and flush everything needed. Task-number: QTBUG-60985 Change-Id: I0408c21e42dd4107b0974877144e8e93f2c30fae Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| | * | Update qmltypesMarco Benelli2017-05-232-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Small update of qmltypes. Change-Id: I5408f0ae50a70ca1c1cc0c0deaa8ddf6458c88c1 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
| * | | Merge "Merge remote-tracking branch 'origin/5.9' into dev" into refs/staging/devLiang Qi2017-06-06153-2974/+2128
| |\ \ \
| | * | | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-06-06153-2974/+2128
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/qml/jsruntime/qv4argumentsobject.cpp src/qml/jsruntime/qv4arraydata.cpp src/qml/jsruntime/qv4context.cpp src/qml/jsruntime/qv4context_p.h src/qml/jsruntime/qv4errorobject.cpp src/qml/jsruntime/qv4functionobject.cpp src/qml/jsruntime/qv4internalclass.cpp src/qml/jsruntime/qv4lookup.cpp src/qml/jsruntime/qv4managed.cpp src/qml/jsruntime/qv4managed_p.h src/qml/jsruntime/qv4object.cpp src/qml/jsruntime/qv4object_p.h src/qml/jsruntime/qv4qmlcontext.cpp src/qml/jsruntime/qv4runtime.cpp src/qml/jsruntime/qv4vme_moth.cpp src/qml/memory/qv4heap_p.h src/qml/memory/qv4mm.cpp src/qml/memory/qv4mm_p.h src/qml/memory/qv4mmdefs_p.h src/quick/scenegraph/util/qsgdistancefieldutil.cpp src/quick/scenegraph/util/qsgdistancefieldutil_p.h tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp Change-Id: I7ed925d4f5d308f872a58ddf51fdce0c8494ec9c
| | | * | Fix compilation of QtScxmlLars Knoll2017-05-221-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QtScxml was using internal API in v4, that has changed. Restore the old function signature until all it's uses have been cleaned up. Task-number: QTBUG-60938 Change-Id: Ie40c09da9df9e5684972669cd9a511a868b920a4 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | * | LauncherList: Add some simple animations to help it look prettierRobin Burchell2017-05-202-36/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Nothing over the top, just some page animations on enter/exit. Change-Id: I822efe3e25928ff7797dd2911b9d2ce8dce00936 Reviewed-by: Gunnar Sletta <gunnar@crimson.no> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | | * | Get rid of the MemoryManager pointer inside StringLars Knoll2017-05-195-14/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can always get the pointer through the internalClass. Change-Id: If68432845e7c67da70d9e19aef1a90ebe1e6056b Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
| | | * | Move the engine() accessor from Object to ManagedLars Knoll2017-05-1921-94/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can easily do this now that Managed has a pointer to an internal class (which always has a back pointer to the ExecutionEngine). Remove the extra engine pointer from ExecutionContext, and clean up tow methods in String. Change-Id: I98d750b1afbdeadf42e66ae0c92c48db1a7adc31 Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
| | | * | Get rid of the old way of defining builtin functionsLars Knoll2017-05-199-233/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old calling convention used for builtin functions is very inefficient. It was still being used in a few places. Clean those up and convert them to the new and much more effiecient calling convention. Change-Id: I6b769c6185df7e9be1e80709330fc1ca868576c1 Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
| | | * | Merge "Merge remote-tracking branch 'origin/5.9.0' into 5.9" into ↵Liang Qi2017-05-194-1/+137
| | | |\ \ | | | | | | | | | | | | | | | | | | refs/staging/5.9
| | | | * | Merge remote-tracking branch 'origin/5.9.0' into 5.9Liang Qi2017-05-194-1/+137
| | | | |\| | | | | | | | | | | | | | | | | | | Change-Id: I52c591fff08a0cbf426aa53354850fb4b5f130c1
| | | | | * Temporarily restore QQuickPointerDevice::pointerEvent() accessorShawn Rutledge2017-05-122-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This can be reverted as soon as the relevant qtlocation change is integrated. Task-number: QTBUG-57253 Change-Id: I72b71f61ba8fe421ac57c963801176098fe9f11c Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
| | | | | * Fix QSG_VISUALIZE=batchesBerthold Krevert2017-05-111-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since I362e1cb8e10 the batch renderer defaults to QSG_SEPARATE_INDEX_BUFFER which broke the batches visualization Change-Id: If1d51cabb0cc4a3a98ac2c01bd78789d08fe72f7 Reviewed-by: Gunnar Sletta <gunnar@crimson.no> Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
| | | | | * Add changes file for 5.9.0Jani Heikkinen2017-05-101-0/+122
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Listing important changes and bug-fixes. Change-Id: I75a18908315ea28cb669bc009cb55e7defd18a8d Reviewed-by: Robin Burchell <robin.burchell@crimson.no> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | | * | | Optimize marking of prototypes in the InternalClass treeLars Knoll2017-05-192-17/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There's no need to iterate over all internal classes, as prototype changes always happen in the first or second level of the tree. Change-Id: I99bf11a6cd238286c1547922d61ab47319b6eb97 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | * | | Give standard objects a bit more inline storage by defaultLars Knoll2017-05-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure we have at least 2 slots for inline storage available for regular JS objects. Speeds up JS execution quite a bit, while still keeping memory consumption low for most other cases. Change-Id: I01824d8db1ffd828c1c1b6a9cbcf9bf1a9070ec3 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | * | | Optimize lookups in the internalClassLars Knoll2017-05-194-23/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Inline the version taking an identifier, and use that one where it makes sense. Change-Id: I414c5999e61cdba219ecd1080957f3037dfebc1b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | * | | Optimize lookups based on IC changesLars Knoll2017-05-193-24/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I1f4f4aaad0c8194bce2ebde4503df38cab0990a2 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | * | | Move the prototype into the internal classLars Knoll2017-05-1917-119/+216
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This saves another pointer on all Objects. Currently introduces a slight performance regression on some of the v8 benchmarks, that needs addressing. Change-Id: I87de8e1d198d2683f4e903c467ce2a60ba542243 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | * | | Move the internalClass field from Heap::Object to Heap::BaseLars Knoll2017-05-1924-36/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | And do not store the vtable in Heap::Base anymore. This change makes the internal class the main distinguishing feature of all garbage collected objects. It also saves one pointer on all Objects. No measurable impact on runtime performance. Change-Id: I040a28b7581b993f1886b5219e279173dfa567e8 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | * | | Add support for storing the Vtable in the InternalClassLars Knoll2017-05-192-25/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prepare for moving the vtable pointer into the internalClass. This adds the required infrastructure to InternalClass, so it can store a vtable pointer and properly handles vtable changes. Change-Id: I688fee1647268dd185d0f9636ab5b3390465daca Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | * | | Properly encapsulate all accesses to the vtableLars Knoll2017-05-194-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I3f6ae59d01c7b6c898e98d3b6f65b84a19b8851a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | * | | Add ICs for String, MemberData and ArrayDataLars Knoll2017-05-197-3/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I43ddcb4842e501cbea8a950ab6ffa2d906014efd Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | * | | Move the list of default internal classes into EngineBaseLars Knoll2017-05-1916-89/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | And store them in an enumerated array. This will simplify upcoming changes. Change-Id: I82eac03b9f6264843ae625e36e150464fe08be9d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | * | | Move the EngineBase class into it's own header fileLars Knoll2017-05-194-35/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Idf87618e4ebff99f3b3c269c950191d67a0182b2 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | * | | Move a few more members from ExecutionEngine to EngineBaseLars Knoll2017-05-193-14/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I5d1e0d2251e04cc871f9c298849aafac17f23fbf Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | * | | Smaller cleanupsLars Knoll2017-05-191-22/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't store the current context in Moth's run() method, instead always retrieve it through the engine. Change-Id: I9d56f2c93a02fc1e2f03839b14b3c0053d60b6b2 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | * | | Optimizations to the generated byte codeLars Knoll2017-05-194-97/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cut the size of the generated byte code in half, by storing parameters in a more compact form and always storing the instruction type in the instruction. We can still used computed goto's for a fast interpreter, by looking up the jump point for the next instruction in the jump table. Another advantage is that the byte code is now platform independent (modulo endianness). The change comes with a 3% performance impact on x86_64, which is acceptable considering the size savings on the bytecode. Change-Id: I37de3e1f94611987a85e65ea86536583aa965d6d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>