aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Enable running of qmlcachegen tests on ARM/qemuSimon Hausmann2017-04-071-1/+1
| | | | | | | | This gives us test coverage for the most important cross-compiling scenario of x86-64 host to armv7 target. Change-Id: I31abd3802681b14561e1ee4c60f6cc9cc2049bf2 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Speed up Qml library checksumming in developer buildsSimon Hausmann2017-04-071-1/+1
| | | | | | | | | | | The use of sha1 to determine if there were any changes in the Qml library in developer builds (for cache invalidation) works well, but it results in timeouts when running tests on ARM as type compilation takes too long. This is a developer feature and we might as well use a faster hash such as Md5 that is sufficiently reliable for our purposes. Change-Id: I917ae619c73a9cc821d888f16bfcccafeb8ebacc Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* Fix locals register allocation on ARM when cross-compilingSimon Hausmann2017-04-061-1/+1
| | | | | | | | r11 needs to be saved :). This ammends ecda87091f290daec34bee6b55dd9cf920ffdcff Change-Id: Ib69712527e04b9bcec4c9e74dea43a915e2bd0f9 Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
* Fix support for jsTr() and QT_TR_NOOP in list elements when cachingSimon Hausmann2017-04-067-426/+591
| | | | | | | | | Similar to the Qt Quick Compiler we need to do the expression simplification pass at cache generation time to extract translation calls in list elements. Change-Id: I267fc9647ab82bc83d6b087c06c0036df38238ff Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix double conversion code generation when cross-compilingSimon Hausmann2017-04-062-7/+15
| | | | | | | | | We can't use QV4_USE_64_BIT_VALUE_ENCODING for deciding how generate code for checking if the tag of a value contains the necessary mask to detect doubles. Change-Id: Id5a5c1b136313aa4dfd2c997898e97cd4ebaeb83 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix shadow stack space handling when cross-compilingSimon Hausmann2017-04-061-7/+1
| | | | | | | | | | | | | Both MIPS and X86-64 on Windows reserve space for four registers on the stack, that the called function may use to spill the parameters passed in registers. This needs to be handled without #ifdefs in order to support cross-compilation and from the looks of it it was also wrong on MIPS. Change-Id: If65a6a0f6f64b8536703d32e7678e30ad807f7c8 Reviewed-by: Julien Brianceau <jbriance@cisco.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Use new ImageProviderWithOptions also for sync image loadingEirik Aavitsland2017-04-064-6/+17
| | | | | | | | | | | When the new extended image provider api was added, only the async image loading function was changed to use it. This commit makes also the sync image loading function check for the new api, and use it if the provider implements it. Change-Id: I982e4de05b8119e1668e2b982d2d62b03a52b302 Reviewed-by: Albert Astals Cid <albert.astals@canonical.com> Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
* Fix loading of ahead-of-time generated cache files when cross-compilingSimon Hausmann2017-04-065-7/+18
| | | | | | | | | The target ABI is something that we must include correctly at cache generation time. The corresponding qmake variable is available in qtbase now, so we can use that and embed it in the generated data. Change-Id: Icd6e44824f5151535ce9ddac27687b7877288725 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix architecture selection when cross-compiling cache filesSimon Hausmann2017-04-061-4/+4
| | | | | | | | | | We pass essentially the values of QSysInfo::buildCpuArchitecture() to qmlcachgen as command line parameters, so our factory function must be aligned with the values returned (and documented) there. That means arm instead of armv7, arm64 instead of armv8 and i386 instead of x86. Change-Id: I89c196b6585f9ba9550c0deb17e8b529980aa448 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix engine parameter passing when cross-compilingSimon Hausmann2017-04-061-1/+1
| | | | | | | | | | | We currently use addressForArgument() only to access the incoming functions parameters in JIT generated code, which is the engine parameter. While not currently supported by the current set of cross-compiling assemblers, the use of sizeof(Type*) may become an issue in the future, so let's use the correct value right away. Change-Id: I3e44279257f595a8be2c61bcfe15070a90038eb7 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix loading of strings when cross-compiling from 64-bit host to 32-bitSimon Hausmann2017-04-061-1/+1
| | | | | | | | The use of sizeof(Type*) is not allowed when calculating indices into pointer arrays. Change-Id: I5531efc80d0267eaceade76ad2b96d454eab9392 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Blacklist tst_QQuickMultiPointTouchArea::nested on Ubuntu 16.04Tony Sarajärvi2017-04-061-0/+2
| | | | | | Task-number: QTBUG-59960 Change-Id: Ibbcde3aa64e517a7bc0c0073efc84ff66a3fae4c Reviewed-by: Liang Qi <liang.qi@qt.io>
* Add auto-test for qmlcachegenSimon Hausmann2017-04-063-0/+129
| | | | | | | | | This test writes a simple QML file with embedded JS code into a temporary directory, calls qmlcachegen to generate the cache file, removes the original source code and tries to load the component. Change-Id: I63e1b0c76a987f4a21b3dc6cb7c4dc828dd5d11f Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QQuickParticleSystem: Fix crash when an Affector diesMartin T. H. Sandsmark2017-04-053-4/+60
| | | | | | | | | A guarded pointer wasn't checked before being de-referenced, that lead to a crash if an emitter was modified after an affector was deleted, but before updateCurrentTime() was called. Change-Id: I6cb605a711319fb77c1e2e87fa9f35427cd7797b Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
* Fix crash in QQuickPixmapReader & friendsAlbert Astals Cid2017-04-051-9/+9
| | | | | | | | | | | | | In 9c50216c7bbbdb2bb51d4485286bf09e12fb5b62 I made the mistake of not copying providerOptions inside QQuickPixmapReply as is done for requestSize and url since i thought that i could just use the data pointer to access it, but that's not possible since data can get deleted in other thread so we need to copy the value Change-Id: Ie1d466b210108e1af1f0c8d3c618d4516448b73d Reviewed-by: Donald Carr <d@chaos-reins.com> Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
* Fix build without features.sqlTasuku Suzuki2017-04-051-1/+1
| | | | | Change-Id: Ia2bf444da6056e3a87ebd5245aeb8c3f819251ce Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Make scaled image size calculation available to image providersEirik Aavitsland2017-04-053-26/+41
| | | | | | | | | | | | | When reduced size image loading is requested through Image::sourceSize, the precise calculation of the scaled size to load is somewhat complex. This commit moves that calculation into a function accessible to image providers, so that they may use the same scaling as Quick's default image loading, and avoid code duplication. This is a code restructuring only; no behavior should change. Change-Id: Ic965fb2b6c22a5d21add41b8395e3a3842697d20 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Remove revision from Drag.imageSource propertyPaolo Angelelli2017-04-051-1/+1
| | | | | | | | | Having the REVISION in the Q_PROPERTY seemingly breaks the feature. QML property revisioning does not work for attached (nor grouped) properties (QTBUG-33179). Change-Id: I770826e86936b59fb1a25885d7c6b123b5467fe2 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* tst_qquickflickable: remove bogus ItemAcceptsDrops flagShawn Rutledge2017-04-051-3/+1
| | | | | | | | TouchDragArea (only for the nestedSliderUsingTouch test so far) doesn't need this flag. It was a copy-and-paste mistake. Change-Id: I4aba79f940e89c9b5f91f2a347c1b7f458284e24 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* Blacklist tst_QQuickMultiPointTouchArea::nonOverlapping in Ubuntu 16.04Tony Sarajärvi2017-04-051-0/+2
| | | | | | Task-number: QTBUG-59829 Change-Id: Ib0b416200922f1e03188960db3735e45012d2797 Reviewed-by: Liang Qi <liang.qi@qt.io>
* Fix build without features.systemsemaphoreTasuku Suzuki2017-04-051-1/+1
| | | | | Change-Id: I3924c3193cc0c5b8def860879cd29f5dcb2c2314 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Make QQuickWidget cleanup work with engines that alter the contextLaszlo Agocs2017-04-041-0/+10
| | | | | | | | | To make Scene3D in a QQuickWidget work. Task-number: QTBUG-52132 Change-Id: I686ff36d82a1c7bdfdcd7080a314bb9afdb7be88 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Adapt tst_qquickflickable::nestedSliderUsingTouch for slow CIShawn Rutledge2017-04-041-4/+4
| | | | | | | | | QQuickTouchUtils::flush() doesn't actually cause all events to be fully delivered. Task-number: QTBUG-59840 Change-Id: Id5bcd97fa06c0d183e633494eca6aa61908348ae Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* Don't waste CPU cycles when checking whether a breakpoint is activeLars Knoll2017-04-041-5/+6
| | | | | | | | | QV4::Function::sourceFile() actually malloc's a new string each time it's being called. Let's not call it unless we need its return value. Change-Id: I4e47422860549df5e1b5b19f3a68f027ff74f05a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Blacklist nestedSliderUsingTouch in Ubuntu 16.04Tony Sarajärvi2017-04-041-0/+2
| | | | | | Task-number: QTBUG-59840 Change-Id: I147eb4aa0f0c61f9c017ce1614ea3b2b2d2386c9 Reviewed-by: Liang Qi <liang.qi@qt.io>
* Fix warning for -no-feature-settingsStephan Binner2017-04-041-0/+2
| | | | | Change-Id: I286336660581ea616a7f5949fe74cfdc6aa7c792 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix warning for -no-feature-temporaryfileStephan Binner2017-04-041-0/+1
| | | | | | Change-Id: Iaa4138610834f87b2a9379e707025d2e8a0fd59c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Tasuku Suzuki <tasuku.suzuki@qt.io>
* Blacklist tst_qquickwindows::requestActivate in macOS 10.11Tony Sarajärvi2017-04-041-0/+2
| | | | | | Task-number: QTBUG-59857 Change-Id: I0d17caceaed0a59ec9abc7f9e8d5fbcc5b504287 Reviewed-by: Liang Qi <liang.qi@qt.io>
* Fix build without features.commandlineparserTasuku Suzuki2017-04-031-2/+3
| | | | | Change-Id: I8b54d1fe7923ce698a1f3979e69a496bb312cff4 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Doc: remove const from QQmlListProperty getterMitch Curtis2017-04-032-2/+2
| | | | | | | | | | | | The function cannot be const, as QQmlListProperty's constructor expects a non-const reference. Errors can result from following the docs: '<function-style-cast>': cannot convert from 'initializer list' to 'QQmlListProperty<QObject>' Change-Id: I2268ab08a130181857c21340604a2251ba66967e Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* Fix Clang warning about member in template class not definedThiago Macieira2017-04-032-3/+3
| | | | | | | | | | | | qv4isel_masm.cpp:285:44: warning: instantiation of variable 'QV4::JIT::Assembler<QV4::JIT::AssemblerTargetConfiguration<JSC::MacroAssemblerX86_64, QV4::JIT::TargetOperatingSystemSpecialization::NoOperatingSystemSpecialization>>::Void' required here, but no definition is available [-Wundefined-var-template] Depending on qv4assembler.cpp instantiating the same template that q4isel_masm.pp required is fragile. So move the definition to the header, next to the class. Change-Id: I27b55fdf514247549455fffd14b178ec9d4b508d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix compilation with the Intel compilerThiago Macieira2017-04-031-1/+1
| | | | | | | | | | | | The template function isn't necessary anymore. It actually breaks the build... ARM64Assembler.h(3275): error: no instance of function template "assertUnused" matches the argument list argument types are: (bool) Assertions.h(238): note: this candidate was rejected because arguments do not match Change-Id: I27b55fdf514247549455fffd14b1c6dfe92f2b88 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix build without features.animationTasuku Suzuki2017-04-034-3/+19
| | | | | | Change-Id: Ie45a2f01def64941a323973ea27446e3fc85a72b Reviewed-by: Robin Burchell <robin.burchell@crimson.no> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* V4: Set correct source locations for jumps out of conditionalsv5.9.0-beta1Ulf Hermann2017-03-312-28/+77
| | | | | | | | | | | | | | | | | | | | | We always want to place the jump on the last line of the conditionally executed statement, unless we might never execute the last line. In the latter case, that is if the inner statement is again a conditional, we use some token of the outer condition. This works fine with loops, as the loop condition is actually checked after each iteration, and it's plausible to the user that we jump there. With "if" statements, it's not so great. We cannot really explain why we jump back to the "if" token after executing the conditional statement. However, we have to add some source location to the jump instruction as otherwise it uses the source location of the last statement that had one, which is rather random. Task-number: QTBUG-59204 Task-number: QTBUG-59774 Change-Id: I48e331ce1c1830f236e16b75c9201a2f490d2092 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix QQuickCanvasItem::toImage() high-DPI captureMorten Johan Sørvig2017-03-312-8/+11
| | | | | | | | | | | Make toImage() work for devicePixelRatio > 1 by scaling the source rect. Also set the devicePixelRatio on the returned image. Task-number: QTBUG-59170 Change-Id: I0c8ccd562c1cf1e89ff37ca1806b46296480b0d0 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Simplify shortcut override handlingJoerg Bornemann2017-03-311-45/+1
| | | | | | | | | Use QInputControl::isCommonTextEditShortcut to determine when to accept a ShortcutOverride event. This removes the code that was duplicated from QWidgetTextControl. Change-Id: Ia4a251e3870803bdb7b3943075003fddabae924b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Qml Debugger: Make sure all objects have a typeUlf Hermann2017-03-313-27/+58
| | | | | | | | | QQmlMetaType::prettyTypeName() does a better job in finding a valid type name for our objects than we can do ourselves. Task-number: QTCREATORBUG-17741 Change-Id: Ie8a192aceb230e73b5295b745987692548aff641 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix encoding of primitive constants when cross-compilingSimon Hausmann2017-03-314-43/+100
| | | | | | | | | | QV4::Primitive is using host value encoding, which can differ from the target. The source of QV4::Primitive in the code generator is usually IR::Const, transformed via convertToValue(). That function becomes a template that converts to a simple target primitive type. Change-Id: If028aea9551d77d81eec306f60fd995c25b76710 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix arithmetic with constants inside eval() calls on 32-bit architecturesSimon Hausmann2017-03-301-0/+1
| | | | | | | | On 32-bit architectures we usually use an external constants table, which we need to make visible in the context. Change-Id: I0f7d813da1c6c893b8dd641dab5685a6db7fa9fa Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
* Doc: add new enumeration descriptionsNico Vertriest2017-03-303-0/+8
| | | | | | | | | | | qsgmaterial.cpp:416: warning: Undocumented enum item 'DirtyCachedMaterialData' in QSGMaterialShader::RenderState::DirtyState qsgmaterial.cpp:416: warning: Undocumented enum item 'DirtyAll' in QSGMaterialShader::RenderState::DirtyState qsgnode.cpp:104: warning: Undocumented enum item 'DirtySubtreeBlocked' in QSGNode::DirtyStateBit qsgnode.cpp:139: warning: Undocumented enum item 'RenderNodeType' in QSGNode::NodeType qsgengine.cpp:75: warning: Undocumented enum item 'TextureIsOpaque' in QSGEngine::CreateTextureOption Change-Id: Ia51d414151e42eddc5fa1198d3bad3ecbc20e30a Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Blacklist tst_qquickapplication::active on OS X 10.11Tony Sarajärvi2017-03-301-0/+2
| | | | | | Task-number: QTBUG-58785 Change-Id: I860e99b32275ff618b96fb18e3b76d6bb15d18d4 Reviewed-by: Liang Qi <liang.qi@qt.io>
* Blacklist TextEdit autotests on macOS 10.12Tony Sarajärvi2017-03-301-0/+4
| | | | | | | | | TextEdit::test_textentry and TextEdit::test_textentry_char fail on macOS 10.12. Task-number: QTBUG-58972 Change-Id: I3d9e4db3a3243ab9a5e373c9cdb23200d80232bd Reviewed-by: Liang Qi <liang.qi@qt.io>
* Fix value type encoding constant usage when cross-compilingSimon Hausmann2017-03-307-62/+80
| | | | | | | | | | | | | | | Our two value encodings use different masks for the upper 4 bytes. Depending on the target architecture we must use different values when generating code that uses these masks. This patch replaces the #ifdef'ed ValueTypeInternal_* enum values with two C++11 scoped enums that allows for the co-existence of both throughout the code base as well as selective use in the code generators. Change-Id: I380c8c28b84df2874cca521b78bfe7f9388ed228 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Restrict automated tests on Boot2Qt to non-graphical testsSimon Hausmann2017-03-302-6/+17
| | | | | | | | | | | | | | This allows us to enable running of some of the tests in the CI and gives us test coverage for some important architecture specific aspects of the engine. Graphical tests are omitted at the moment as well as a few other tests (such as ES6 suite), that will be added incrementally. This change is just an enabler. Once in place tests can be enabled in qt5.git's platform_configs. Change-Id: I9179aaf1fe12f4423833379b97d16b711c57f39b Reviewed-by: Sami Nurmenniemi <sami.nurmenniemi@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix stack pointer arithmetic when cross-compilingSimon Hausmann2017-03-297-5/+15
| | | | | | | | | | Replace the use of size(void*) with target assembler specific values for the pointer size, when calculating offsets into the stack for poke/peek/push/pop and placing arguments onto the stack before calling functions. Change-Id: I3aff540f0083967e75b61e0c29dbeb4d9ecfa433 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Minor cleanup: Don't require QtGui for ES6 testsSimon Hausmann2017-03-291-1/+1
| | | | | | | We don't need a QGuiApplication to launch test262.py Change-Id: I3f8e200245a30d88f3c6ff578be414ec76bcfb9c Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
* Make keyboard events work in QQuickWidgetLaszlo Agocs2017-03-293-6/+31
| | | | | | | | | | | | | | | | | Right now many cases outside of text input fields are simply broken, e.g. one cannot use a TableView or other controls with the keyboard. Removing the seemingly unnecessary focusObject() solves all problems since this way key events get delivered to the QQuickWidget which in turn forwards to the QQuickWindow. Directly routing into the QQuickWindow's focusObject(), which can be any item in the scene is wrong since it skips a big part of QQuickWindow's event handling logic. Task-number: QTBUG-45757 Change-Id: Ie53b9003d156ab019fa4b9cf461e209990e738f7 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* tst_qquickimage::mirror(): Ensure screenshots are in the correct formatFriedemann Kleint2017-03-291-1/+1
| | | | | | Task-number: QTBUG-59787 Change-Id: I9ef1e6e5284cadc37bdac342b02cf93655346d57 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Fix pop(RegisterID) on ARMv7 when cross-compilingSimon Hausmann2017-03-291-1/+1
| | | | | | | | | This is implemented as ldr instruction that automatically adjusts the indexing register, which for ARMv7 needs to be always 4-bytes, not sizeof(void*) which can be 8 on 64-bit hosts. Change-Id: I66cce2a7388ef12b321db643e8efb002158519aa Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Simplify function prologue code in the JITSimon Hausmann2017-03-291-3/+1
| | | | | | | | | We don't have to do a engine->current->engine dance to get hold of the engine pointer, in order to update jsStackTop. We have a dedicated engine register :) Change-Id: I187ea67bf9f3e43b0048dca3cd6ee35f70d8737c Reviewed-by: Lars Knoll <lars.knoll@qt.io>