aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.8.0' into 5.8Liang Qi2016-12-253-10/+15
|\ | | | | | | Change-Id: I72ed8656ef03d1bc28225e2186f03620b9e119e9
| * change type of QQuickPointerDevice::uniqueId to QPointingDeviceUniqueIdShawn Rutledge2016-12-091-4/+5
| | | | | | | | | | | | | | | | | | | | This will make it easier to change or extend further, in case some future device has some sort of unique serial number which does not fit in a quint64. Task-number: QTBUG-54616 Change-Id: I8f20b13d75b937fce6a66653476d0d25f2abf34b Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
| * rename QPointerUniqueId -> QPointingDeviceUniqueIdShawn Rutledge2016-12-092-6/+5
| | | | | | | | | | | | | | | | | | | | Several people agreed that the name was confusing and that this one is better. Task-number: QTBUG-54616 Change-Id: Ie9d24fc6e233949be36c8b6ee2650080a8a3506e Reviewed-by: Sune Vuorela <sune@vuorela.dk> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
| * V4 Interpreter: reset the exception handler for every catch blockErik Verbruggen2016-12-081-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If an exception handler consists of multiple basic-blocks, and is then followed by a finally block (for example: a catch block with a throw followed by a return, and then a subsequent finally block), then the finally block can be reached before the exception handler is reset by skipping the second block of the catch handler with a throw. As the finally block will then rethrow, and the old exception handler is still there, it will end in an endless loop. The fix is to reset the exception handler for every catch block. The problem occurred in ch12/12.14/S12.14_A13_T3 Change-Id: I968b62c6c2af30af32e2717a9ce85f852523dbe8 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Example: corrected screenshot of the localstorage appNico Vertriest2016-12-211-0/+0
| | | | | | | | | | | | | | | | Was still displaying a screenshot of the previous example \image --> \borderedimage Change-Id: Ifb23d0ffe1216c7d79170b6bbbd7da1511afe79c Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | Fix wrong grabbing behaviorFilipe Azevedo2016-12-201-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | QQuickWidget::grabFrameBuffer() was not polishing its items nor syncing the scene graph compared to standard QQuickWindow::grabWindow(). This lead to QQuickWidget grabbed content to be outdated (render the previous frame as a new frame). Task-number: QTBUG-57596 Change-Id: I94f5e0aa5b096fb9e21259267c0e50473e8ed5bd Reviewed-by: Robin Burchell <robin.burchell@viroteck.net> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | ListView, GridView: fix missing keyNavigationEnabled propertyMitch Curtis2016-12-201-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this patch, this code: import QtQuick 2.7 ListView { keyNavigationEnabled: true } Would cause this error: "ListView.keyNavigationEnabled" is not available in QtQuick 2.7. This is because ItemView was missing a revision: qmlRegisterUncreatableType<QQuickItemView, 7>( uri, 2, 7, "ItemView", QQuickItemView::tr("ItemView is an abstract base class")); Task-number: QTBUG-57621 Change-Id: Ia00cb7446a0d83278760f3aa361db5a864661bc6 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | QmlProfiler: Don't create a new event ID for each binding instanceUlf Hermann2016-12-202-31/+30
| | | | | | | | | | | | | | | | | | | | We want the IDs to reflect the location and the type of event that is happening. Thus all instances of a particular component should share the same IDs for their bindings. Otherwise the aggregated views of the QML profiler list the same locations again and again for each object. Change-Id: I3f8a7531589b42f785e40c7c5b04b229f639d696 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | V4 Profiler: Don't delete compilation units when copying trace dataUlf Hermann2016-12-201-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | If the trace data is the only thing holding a reference to a particular compilation unit and we are copying the last FunctionCall from that compilationUnit onto the second last, we have to first addref() and then release() as otherwise it might disappear in between. Also we don't need to check m_function for null, as the ctor guarantees it is never null. Change-Id: I6eaf64abe71f9785d4e76e18dabd9a0676564da1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Q_CHECK_PTR QSGGeometry allocationsUlf Hermann2016-12-201-0/+1
| | | | | | | | | | | | | | | | We want to cleanly crash if they fail, rather than return a null pointer from vertexData(). Change-Id: Ie88adaa9f0977c70ef4a47a59463509dcd15bdcf Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | Q_CHECK_PTR the result of malloc() in batch rendererUlf Hermann2016-12-201-0/+1
| | | | | | | | | | | | | | We want to cleanly crash if it fails. Change-Id: Ib32d3d6ae0c5d58e0a954e55adca8b2c4081a7f5 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | Doc: added support for JSON in localstorage documentationNico Vertriest2016-12-202-11/+41
| | | | | | | | | | | | | | Added examples on how to store in JSON format Change-Id: Ief58e28d42cd87cc0829e9265670e7c7bbdbeffe Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Accept PUA characters, ZWNJ and ZWJ as input in TextInput/EditEskil Abrahamsen Blomfeldt2016-12-134-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Private Use Area characters are quite valid input characters when used in combination with a custom font. Joiners also serve an important language purpose in semitic writing systems. [ChangeLog][QtWidgets][Input] Support characters in Private Use Area, as well as zero-width joiners and zero-width non-joiners in input in TextInput and TextEdit. Task-number: QTBUG-42074 Task-number: QTBUG-57003 Change-Id: I4a9d6b9ea172d29375c20abfb7aebb6748c5d300 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | Minor optimizationLars Knoll2016-12-131-1/+1
| | | | | | | | | | | | | | | | Use the pre-computed hasQmlDependencies boolean in QV4::Function instead of checking three integers. Change-Id: Ib7194ccf9e9eb58b0d3c692388adc0cfa4cd3891 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Optimize code in instanceOf() of FunctionObject::protoForConstructor()Lars Knoll2016-12-133-17/+17
| | | | | | | | | | | | | | Saves around 1.5% instructions for the Earley Boyer benchmark Change-Id: I552d324d5e1713f655ab9909f30c9527bb4ff777 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Micro optimizationLars Knoll2016-12-131-0/+7
| | | | | | | | | | | | | | | | Avoid checking whether the object is a Managed if we already know that. Change-Id: I78234b47269d3eb1a322fdafe7654f91dae7545a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Streamline code allocating MemberDataLars Knoll2016-12-134-34/+12
| | | | | | | | | | | | | | Saves around 1% in the Splay benchmark. Change-Id: I32c8807d6688351beea2a34d945e8ef87b31355f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Optimize Arguments ObjectLars Knoll2016-12-133-3/+18
| | | | | | | | | | | | | | | | | | | | | | | | Avoid creation of the Array in most cases. Fix FunctionObject::method_apply so that it correctly recognizes this case and does the right thing. Add a getLength() method to ArgumentsObject to speed up the lookup of that property. Improves the RayTrace benchmark by around 15%. Change-Id: I53eb34a1f9515e59a191ee6f0eb23a3f4c6882d1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Initialize idx in QV4::Lookup::indexedGetterFallback()Ulf Hermann2016-12-121-1/+1
| | | | | | | | | | Change-Id: If7fe6635155937fa3e8c94ac081a267d96563859 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Clean up the amount of init() methods on FunctionObjectLars Knoll2016-12-112-47/+7
| | | | | | | | | | | | | | | | Remove some unused ones and simplify the version taking a QString Change-Id: I682b4a06d4da84c2d6be7e4a9a3e831dbd11c9c4 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Get rid of SimpleScriptFunctionLars Knoll2016-12-116-94/+31
| | | | | | | | | | | | | | | | | | | | Now that the code paths are very similar, we can simply to the check whether to do a fast or slow function call in ScriptFunction::call/contruct. To make this fast, cache the result of the required check in QV4::Function Change-Id: I03085ca2beb83b1721b60b0d7b2ab4c9266d1e48 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Some smaller optimizations for indexed property accessLars Knoll2016-12-102-23/+47
| | | | | | | | | | | | | | Saves around 1% of instructions on crypto.js Change-Id: Iccef08b204e6e752d827242baf156efd9a4d58a7 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Avoid one additional check when retrieving the Heap object from a ValueLars Knoll2016-12-101-7/+7
| | | | | | | | | | Change-Id: Ief43d899e47cbfd865458a38aab8c466f6c2c76f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Get rid of QQmlJavaScriptExpression::setFunctionObject()Lars Knoll2016-12-093-14/+2
| | | | | | | | | | | | | | | | It was only used in one place now, and the code is actually cleaner when calling setupFunction() instead. Change-Id: Idfe2842b81e765569f2c70f3d5dcd1862442a2ee Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Fix coding styleLars Knoll2016-12-091-10/+6
| | | | | | | | | | Change-Id: I2d6d67273533930aaa9fc61c5f4cdbef2f0bcf53 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Pass a QV4::Function to the QQmlBoundSignalExpression constructorLars Knoll2016-12-093-6/+6
| | | | | | | | | | | | | | And avoid the creation of a temporary FunctionObject Change-Id: Idaacfd978ac4ee26960bdf185272cc44d6618a71 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Avoid passing a FunctionObject to QQmlBinding::create()Lars Knoll2016-12-096-22/+10
| | | | | | | | | | | | | | | | Like this we can remove the QQmlBinding::create() overload that takes a FunctionObject. Change-Id: Ib6c37395ded325e68cf0fbf3afd08fb6dd6efa3b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Directly store the referenced QV4::Function pointer in the binding functionLars Knoll2016-12-093-26/+3
| | | | | | | | | | | | | | | | | | There's no need to store a pointer to the original function here, we can simplify the code when storing the pointer to the QV4::Function directly. Change-Id: I377aaecf56a0118606713c26cc7da4da001766b1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Fix the init() function in Heap::FunctionObjectLars Knoll2016-12-091-1/+2
| | | | | | | | | | | | | | | | | | | | One of the overloads took a QV4::Function * and was so far apparently unused (as it couldn't have worked since change 3b14e2ffdd8eb4b7f7f4508768b75f2acc399370). Fix it since it's getting some use again in the next change. Change-Id: I3eabb332f9e3f2262a5710d43016346b7138f7e7 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Don't store a source location in the QQmlBindingFunction anymoreLars Knoll2016-12-096-19/+5
| | | | | | | | | | | | | | | | It's not needed anymore as we now store this in the binding directly. Change-Id: I518c83207f219b690f31200e4d17251075bbd322 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Add a setSourceLocation() methodLars Knoll2016-12-092-1/+9
| | | | | | | | | | Change-Id: I611ab4fe5dd59cb8e07b0fa69ce22c7df5a6c3f2 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Get rid of FunctionObject::createQmlFunctionLars Knoll2016-12-096-33/+20
| | | | | | | | | | | | | | | | Instead, simply create a QmlContext, and setup the bindings with the QV4::Function itself. Change-Id: I9db93b15112e43a6d5e275d126fb20f9c8833e8f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Don't create a FunctionObject in createQmlBinding()Lars Knoll2016-12-093-53/+2
| | | | | | | | | | | | | | | | This also removes the last use of the QmlBindingWrapper, so remove that class as well. Change-Id: I2ec795b6ab695a689fb24d64c9b8809b651c2b37 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Avoid the creation of a FunctionObject for most bindingsLars Knoll2016-12-095-3/+30
| | | | | | | | | | Change-Id: Ia62d380945250015009d9c2b6ed65f6d830277ef Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Don't store a FunctionObject in QQmlJavaScriptExpression anymoreLars Knoll2016-12-092-18/+29
| | | | | | | | | | | | | | Instead store the QmlContext, the QV4::Function and a source location. Change-Id: Iafa54c09b9be7e78bace3498673ca94a2a145c97 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Limit access to m_function to QQmlJavaScriptExpressionLars Knoll2016-12-095-10/+28
| | | | | | | | | | Change-Id: I070f73f106440667fce2c7fe33310369a6aa1376 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Don't create a QML function is the signal parameters are invalidLars Knoll2016-12-092-4/+4
| | | | | | | | | | | | | | Moves the error checking to where the error occurs. Change-Id: I2590d3a9d41f41c16d19e4f5883b78a8b28a883c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Remove some dead codeLars Knoll2016-12-091-4/+0
| | | | | | | | | | Change-Id: Ibf6d50926edd85ebee545bcfdfcd14cb0eeab969 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Avoid using the FunctionObject in QQmlJavaScriptExpression::evaluate()Lars Knoll2016-12-091-3/+10
| | | | | | | | | | | | | | Rather directly execute the call on the QV4::Function. Change-Id: I1de52075760be6b3a0358af83270ebd4e1d1e8ae Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Change signature of QQmlBinding::create to take a FunctionObject *Lars Knoll2016-12-095-6/+6
| | | | | | | | | | | | | | This is what's in the Value in all cases anyway. Change-Id: I212c4c4076050e8d0ea4cf6f72a1683e132cd51b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Mostly use the QV4::Function in javascript expressionsLars Knoll2016-12-096-35/+30
| | | | | | | | | | | | | | | | | | Move the function() accessor from QQmlBoundSIgnal to QQmlJavaScriptExpression. Change the profiler to operate on QV4::Function objects for binding profiling. Change-Id: Ic7ce83c487ceb69cad4b16e3dab42026238b7e82 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Qml Inspector: Avoid taking a QPointer of an object being deletedUlf Hermann2016-12-092-4/+2
| | | | | | | | | | | | | | | | As we manually remove items to be deleted from the list of selected items, we don't need to keep them as QPointer in the first place. Change-Id: Ie416b47d4f193cb3dc7cfb07e66ab2b36ad6721c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Bump QML cache file versionSimon Hausmann2016-12-091-1/+1
| | | | | | | | | | | | | | | | After the recent data structure changes this seems appropriate to force a cache rebuild for those following the branch in release builds. Change-Id: Ie4c0534729a752137068b8f24beb9d15e7895c46 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Remove unused argumentLars Knoll2016-12-092-8/+4
| | | | | | | | | | Change-Id: Ie490f113b6fc48ea75eb5903a79dddb02faa7301 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Get rid od ScriptFunction::init()Lars Knoll2016-12-092-7/+1
| | | | | | | | | | | | | | It was just forwarding to the parent implementation anyway. Change-Id: I179966699978a86efdd6792b31b56eded501efbd Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Refactor the calling code for (Simple)ScriptFunctionLars Knoll2016-12-096-106/+93
| | | | | | | | | | | | | | | | | | | | | | Factor the common code out into separate methods that can later on be reused by the QQmlJavaScriptExpression. Also ensure a CallContext is safe to use with a 0 FunctionObject. Change-Id: I1181a8e320b8c931d9df5b2c91bc143d8587fb60 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Minor cleanupLars Knoll2016-12-091-5/+6
| | | | | | | | | | Change-Id: I091f2de77f84fb298404dc8784defcf3a812d56a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Add sourceLocation() accessor to QQmlJavascriptExpressionLars Knoll2016-12-095-15/+9
| | | | | | | | | | | | | | | | And remove it from the derived QQmlBoundSignalExpression class. Change-Id: I93cdc67136ddd916474acd2169faf380e296a900 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Move the check whether a function is simple to QV4::FunctionLars Knoll2016-12-092-6/+12
| | | | | | | | | | | | | | This allows re-using the check in the QQmlJavascriptExpression code. Change-Id: I647a6edb4844911f540f08c4a067d055676dd0ed Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Avoid some copies of Values on the JS stackLars Knoll2016-12-092-12/+10
| | | | | | | | | | Change-Id: I1c7dca6e8d17da9f3d76b68d072370b087840f2b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>