aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/scenegraph/qsgrenderloop.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Updated license headersJani Heikkinen2016-01-191-14/+20
| | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: Ic36f1a0a1436fe6ac6eeca8c2375a79857e9cb12 Reviewed-by: Lars Knoll <[email protected]>
* QSGRenderLoop: Remove the exhaust delay timer.Robin Burchell2015-12-071-31/+4
| | | | | | | | | This was replaced by a proper requestUpdate mechanism at the QWindow level, so it isn't needed anymore. As we can't remove the QQuickWidget version so easily, document the exhaust_delay reasoning, as it is not too obvious. Change-Id: I0a15237bacae47dc87af6b6018a7bc1b47eb8d2d Reviewed-by: Gunnar Sletta <[email protected]>
* Quick: Sanitize reading environment variables.Friedemann Kleint2015-10-261-7/+9
| | | | | | | | | | | | | | Where possible, use qEnvironmentVariableIsSet()/ qEnvironmentVariableIsEmpty() instead of checking on the return value of qgetenv(). Where the value is required, add a check using one of qEnvironmentVariableIsSet()/Empty(). Move QSGAtlasTexture::qsg_envInt() to qsgrenderer.cpp for reuse as qt_sg_envInt() and add qt_sg_envFloat(). Change-Id: I4c93f16c228d4f537154f389a0fa1427654485f7 Reviewed-by: Gunnar Sletta <[email protected]>
* Support alpha in QQuickWindow::grabWindow().Gunnar Sletta2015-10-161-1/+2
| | | | | | Change-Id: I2dd69745427d8f5e882303d2a4de3935ddca02e9 Task-number: QTBUG-48787 Reviewed-by: Laszlo Agocs <[email protected]>
* Merge remote-tracking branch 'origin/5.5' into 5.6Ulf Hermann2015-08-181-0/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/debugger/qv4debugservice.cpp src/qml/jsruntime/qv4value_inl_p.h src/qml/jsruntime/qv4value_p.h src/qml/memory/qv4mm.cpp src/qml/memory/qv4mm_p.h src/qml/qml/qqmlnotifier_p.h src/qml/qml/qqmlproperty.cpp src/quick/items/qquickflickable.cpp src/quick/items/qquicktextedit.cpp tests/auto/quick/qquickwindow/BLACKLIST The extra changes in qqmlbinding.cpp are ported from changes to qqmlproperty.cpp that occurred in parallel with writeBinding() being moved to qqmlbinding.cpp. Change-Id: I16d1920abf448c29a01822256f52153651a56356
| * Delete QQuickWindow's animator driver at the right time.Gunnar Sletta2015-07-041-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | For the non-threaded renderloops, we there might be a timer firing before the animationController is cleaned up through deleteLater() which will then reference the deleted QQuickWindow. Rely instead on direct and explicit cleanup at the right time in each render loop. Change-Id: Id81daddae78ce3922d6a932fb21200f2dc7955bb Task-number: QTBUG-33723 Reviewed-by: Liang Qi <[email protected]> Reviewed-by: Robin Burchell <[email protected]>
* | Merge remote-tracking branch 'origin/5.5' into devSimon Hausmann2015-06-041-1/+2
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/jsruntime/qv4engine_p.h src/quick/items/qquickitemsmodule.cpp src/quick/items/qquicktext.cpp src/quick/util/qquickpixmapcache.cpp tests/auto/quick/qquickwindow/tst_qquickwindow.cpp Change-Id: I90ecaad6a4bfaa4f36149a7463f4d7141f4a516a
| * Fix basic and windows render loops to use the correct screenLaszlo Agocs2015-05-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | GLX, and potentially other platforms too, require that compatible contexts and surfaces are created with the same screen. This makes Quick functional on X.org configurations where each physical screen represents a separate X screen on the same X display. Change-Id: I03c87819e1aee148c880a3caca13d4a0c5409056 Reviewed-by: Gunnar Sletta <[email protected]>
| * QtQuick: Fix const correctness in old style castsThiago Macieira2015-05-131-1/+1
| | | | | | | | | | | | | | | | Found with GCC's -Wcast-qual. Change-Id: Ia0aac2f09e9245339951ffff13c9589afabc7ade Reviewed-by: Alan Alpert (Personal) <[email protected]> Reviewed-by: Simon Hausmann <[email protected]>
* | Merge remote-tracking branch 'origin/5.5' into devSimon Hausmann2015-04-281-0/+4
|\| | | | | | | | | | | | | Conflicts: tests/auto/quick/qquicktext/tst_qquicktext.cpp Change-Id: I075e742da8396a268d97d3ab34bcd9e0c0cf001f
| * Fix a memory leak in the material shader cache.Robert Griebl2015-04-231-0/+4
| | | | | | | | | | | | | | | | | | | | | | There were multiple problems in the implementation of the shader cache: 1) it was not thread-safe 2) nothing was ever removed from the hash 3) since the keys into the hash are the actual shader source code, problem #2 would lead to serious memory consumption over time Change-Id: I20d1fb2074932e23f89edddba12e68ab8adcbff0 Reviewed-by: Gunnar Sletta <[email protected]>
* | Added a new render job stage: NoStageMiikka Heikkinen2015-04-151-0/+16
|/ | | | | | | | | | | | | NoStage allows scheduling jobs for immediate execution on the renderer thread. [ChangeLog][QtQuick][QQuickWindow] Added a render job stage: NoStage Task-number: QTBUG-44953 Change-Id: I918c79f1d095bc27d911a88d81376d146a04313c Reviewed-by: Gunnar Sletta <[email protected]> Reviewed-by: Venugopal Shivashankar <[email protected]> Reviewed-by: Pasi Keränen <[email protected]>
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-03-311-6/+1
|\ | | | | | | Change-Id: I54e66e992f5e5d441b8b5394e7a03ec5352e7bf3
| * Don't send deferred delete events from windowDestroyed()Andy Shaw2015-03-301-6/+1
| | | | | | | | | | | | | | | | | | | | | | This is a follow-up to 657766f19b31d83f361fd3c9ad717b207e1dff8c which removed it from the destructor itself. This goes one step further and removes the calls from the windowDestroyed() calls which also sends the deferred deletes. Task-number: QTBUG-40920 Change-Id: I491b79bb600914575ba5565d2862d041726217e8 Reviewed-by: Gunnar Sletta <[email protected]>
* | Update copyright headersJani Heikkinen2015-02-121-7/+7
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: I61120571787870c0ed17066afb31779b1e6e30e9 Reviewed-by: Iikka Eklund <[email protected]>
* | Default to threaded when using opengl32Laszlo Agocs2014-12-121-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This appplies only when using opengl32.dll. When using ANGLE or when using another non-opengl32 DLL, the "windows" single-threaded loop is chosen, just like before. One badly written autotest is fixed. We must never assume that performing some QQuickWindow related work will leave a context current on the main thread. The assumption worked by accident with the single-threaded render loop. [ChangeLog][QtQuick] Changed to use the threaded render loop by default on Windows when running with desktop OpenGL (opengl32.dll). Change-Id: I21798622c19ca510a97a96c19c1e70e29f086e3a Reviewed-by: Friedemann Kleint <[email protected]> Reviewed-by: Jørgen Lind <[email protected]>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-291-4/+20
|\| | | | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickaccessibleattached_p.h src/quick/items/qquickwindow.cpp src/quick/scenegraph/qsgthreadedrenderloop.cpp Change-Id: I8bf07487a75f9d1b0d6efa5914dd06875fc9654d
| * Fix disfunctional QQuickRenderControl with multiple screensLaszlo Agocs2014-10-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Having a retina and non-retina screen connected resulted in getting no output from QQuickRenderControl and QQuickWidget on the non-retina screen. This is caused by the fact that Quick is blindly calling QWindow::devicePixelRatio(). This approach is wrong when using QQuickRenderControl since the QQuickWindow does not have an actual native window and so devicePixelRatio() merely returns some default value which will definitely be wrong for one of the screens. The patch fixes the problem by introducing QQuickWindow::effectiveDevicePixelRatio(), which, via QQuickRenderControl::renderWindowFor, supports the redirected case too. Task-number: QTBUG-42114 Change-Id: I057e01f0a00758dde438fc9b10af3a435b06bb0b Reviewed-by: Paul Olav Tvete <[email protected]>
| * Fix failing makeCurrent in basic renderloop when closing windowsLaszlo Agocs2014-10-211-3/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The makeCurrent() call can fail if there is no underlying platform window present anymore (due to close()). Just continuing with the cleanup is wrong: There may be another context current (from the application or from some other component of Qt) and there are GL calls issued which would mess up the state in that context. Therefore we ensure there's a context/surface by using a temporary QOffscreenSurface. Task-number: QTBUG-41942 Change-Id: I79f35a1f5bbe7a8a14943e8603764575ed119f93 Reviewed-by: Gunnar Sletta <[email protected]>
* | Introduced QQuickCustomRenderStage.Gunnar Sletta2014-10-161-1/+2
| | | | | | | | | | | | | | | | | | The purpose of this concept is to make it possible to plug in an external rendering stage, like replacing the GL rendering with a composition step performed by a hardware compositor in QtCompositor. Change-Id: I994b93af443f68a77ca73cf310b5910c49e014c3 Reviewed-by: Laszlo Agocs <[email protected]>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-091-37/+6
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/quick/items/context2d/qquickcanvasitem.cpp src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp src/quick/scenegraph/coreapi/qsgrenderer.cpp src/quick/scenegraph/qsgadaptationlayer.cpp src/quick/scenegraph/qsgrenderloop.cpp src/quick/scenegraph/qsgthreadedrenderloop.cpp src/quick/scenegraph/qsgwindowsrenderloop.cpp src/quick/scenegraph/util/qsgatlastexture.cpp src/quick/scenegraph/util/qsgtexture.cpp src/quick/util/qquickprofiler_p.h Change-Id: Ie274c3baf72a8a0711c87d67238d68e2b2887429
| * Fix cleanup of non-threaded render loops.Gunnar Sletta2014-09-241-19/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | They would unconditionally call cleanupNodesOnShutdown on hide(), but QQuickWindow::sceneGraphInvalidated would only be emitted if this was the last window being hidden, leading to an inconsistent state in the application. Since the non-threaded render loops do not support releasing resources (there is one OpenGL context and one QSGRenderContext shared between all windows) we delay cleanup until the window is destroyed. This change also make the render loops track the windows until they are destroyed, similar to what the threaded one does. The purpose of this is to, in the case of dangling windows, only trigger invalidation of the scene graph when the last QQuickWindow is destroyed through QSGRenderLoop::cleanup(). Task-number: QTBUG-41210 Change-Id: I7e12a4f726ebb3e7935c822b6046abb3590c583a Reviewed-by: Ulf Hermann <[email protected]> Reviewed-by: Laszlo Agocs <[email protected]>
| * Finally: A default animation driver which doesn't use walltime.Gunnar Sletta2014-09-181-18/+0
| | | | | | | | | | | | | | | | | | | | | | I've wanted this for a long time, but the animation system didn't support it when mixed with timers/pauses. However, because of dfc8f8b5d4a02f33c7f9063c2a28450902a9d863 and 0db3ea4048fe572a256deb343ea5e64a55d98de9 to qtbase, it is now possible. Change-Id: Ic70c181ce49eae90276bd4f22a2d299061f96087 Reviewed-by: Michael Brasser <[email protected]>
| * Select specific features to be recorded when profiling QMLUlf Hermann2014-09-111-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Some features, like the memory profiler, create huge amounts of data. Often enough, we're not actually interested in all the data available from the profiler and collecting it all can lead to excessive memory consumption. This change enables us to optionally turn various aspects of QML profiling off. Task-number: QTBUG-41118 Change-Id: I7bb223414e24eb903124ffa6e0896af6ce974e49 Reviewed-by: Gunnar Sletta <[email protected]>
* | Use QQuickProfiler's own timer to sample eventsUlf Hermann2014-09-121-9/+8
|/ | | | | | | | Like that the timings are more accurate. Task-number: QTBUG-39876 Change-Id: Ia6bdce9c8089417e88797ec3a98c8a3e367f73f2 Reviewed-by: Gunnar Sletta <[email protected]>
* Update license headers and add new licensesJani Heikkinen2014-08-251-19/+11
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 & LICENSE.GPLv2 - Removed LICENSE.GPL Change-Id: I84a565e2e0caa3b76bf291a7d188a57a4b00e1b0 Reviewed-by: Jani Heikkinen <[email protected]>
* Make the QtQuick window surface type configurableSimon Hausmann2014-08-081-0/+5
| | | | | | | The default remains OpenGLSurface. Change-Id: I96b400b7aa9c2b0435ea0614598e1b1f32b6d6b2 Reviewed-by: Lars Knoll <[email protected]>
* Use the renamed qt_gl_global_share_contextJocelyn Turcotte2014-08-051-2/+2
| | | | | Change-Id: I438c33a1dc83fd0cd1ec08bb4e4a1257a3216ca2 Reviewed-by: Laszlo Agocs <[email protected]>
* Merge remote-tracking branch 'origin/5.3' into devFrederik Gladhorn2014-07-101-1/+5
|\ | | | | | | Change-Id: Iba61035910c46627e5e1c3824757da7b3d573657
| * Don't dereference null QQuickWindowPrivate.Sérgio Martins2014-07-031-1/+5
| | | | | | | | | | | | | | | | | | windowDestroyed() triggers a sendPostedEvent(DeferredDelete) to cleanup GL resources. If the window was deleted through deleteLater() it will also be deleted at this point. Change-Id: I3b0cc0f36c4a543c5fbaa4af107dc4aa0c8b6725 Reviewed-by: Gunnar Sletta <[email protected]>
* | Fix output of swap times for basic render loopUlf Hermann2014-07-021-2/+2
| | | | | | | | | | | | | | | | The swap time was treated as absolute by the qCDebug output, but was actually relative. Change-Id: Ia1539b8f8305ca37430022803419eb12a05934cb Reviewed-by: Gunnar Sletta <[email protected]>
* | Properly collect polish timings from all render loopsUlf Hermann2014-07-021-3/+5
| | | | | | | | | | | | | | | | | | | | | | Previously the polish timings were collected incorrectly from the windows render loop and not at all from the basic render loop. By collecting the polish times at the right places we can get rid of the 2-argument profile macro as well. Task-number: QTBUG-39876 Change-Id: I0b4aaf87162c652b8dcea6cd4f54db053f8312fe Reviewed-by: Gunnar Sletta <[email protected]>
* | Use categorized logging for all things scenegraph.Gunnar Sletta2014-07-011-25/+31
| | | | | | | | | | Change-Id: I865ee838b0fd6c257b7189f24130012b98206fd1 Reviewed-by: Shawn Rutledge <[email protected]>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-05-101-15/+33
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/plugins/accessible/quick/quick.pro src/quick/items/qquickpincharea.cpp src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp src/quick/scenegraph/qsgthreadedrenderloop.cpp Manually adjusted for TestHTTPServer constructor change: tests/auto/quick/qquickimage/tst_qquickimage.cpp Change-Id: I5e58a7c08ea92d6fc5e3bce98571c54f7b2ce08f
| * Follow QOpenGLContext API renamingLaszlo Agocs2014-04-251-1/+1
| | | | | | | | | | | | Task-number: QTBUG-38564 Change-Id: Ice1170339f7d650fcb6accfccf325471629343d6 Reviewed-by: Sean Harmer <[email protected]>
| * Use global context sharing from QtGui instead of QSGContextJocelyn Turcotte2014-04-041-2/+2
| | | | | | | | | | | | | | | | | | This removes QSGContext::sharedOpenGLContext and replace its uses with QOpenGLContextPrivate::globalShareContext, which is also going to be used by QOpenGLWidget and QQuickWidget. Change-Id: I1e296c3e6832f717caaf31ba7d7b27c06249219b Reviewed-by: Laszlo Agocs <[email protected]>
| * Destroy render loop when QCoreApplication is cleaned up.Gunnar Sletta2014-03-291-5/+7
| | | | | | | | | | | | | | | | | | Doing it on 'aboutToQuit' meant we would clean it up whenever an application ran QCoreApp::exec() which could be multiple times per application run. Change-Id: I59e06398a551ae7979e3832dff811937037fa106 Reviewed-by: Robin Burchell <[email protected]>
| * Fix QQuickView::grabWindow() on retina displaysMorten Johan Sørvig2014-03-201-1/+1
| | | | | | | | | | | | | | | | | | Multiply by window->devicePixelRatio() at all qt_gl_read_framebuffer() call sites. Task-number: QTBUG-35962 Change-Id: If58e4f97fc5d931ba2e222f8cb1a0641d52c3257 Reviewed-by: Gunnar Sletta <[email protected]>
| * Fix potential crash during shutdown for QQuickWindowsGunnar Sletta2014-03-171-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | The cleanup() function would deregister the render loop from all windows the render loop had seen, but the render loop doesn't see windows until the window gets a showEvent and for some implementations it was removed as a result of hideEvent. So add explicit tracking to QSGRenderLoop which is managed by QQuickWindow's constructor and destructor. With this, we no longer need the lists from the subclasses, so these functions are removed again. Change-Id: I05e5507ad57e23c80bacd99752654cc7d0890dc1 Reviewed-by: Paul Olav Tvete <[email protected]>
| * Unset the current gl window when deletedGiulio Camuffo2014-03-171-0/+2
| | | | | | | | | | | | | | | | | | | | This does in the QSGGuiThreadRenderLoop what 403045a did for the QSGThreadedRenderLoop. Fix a memory corruption in Mesa's dri2 EGL when setting a window current after deleting the previous current one. Change-Id: I8df0bacdf12f71e969a9ea39842a402c9a2a303f Reviewed-by: Gunnar Sletta <[email protected]>
| * Make sure QSGRenderLoop is cleaned up cleanly.Gunnar Sletta2014-03-141-11/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e13547c595913c58e6bd6a5ed80fdc729fae7d47 used a global static to clean up QSGRenderLoop which is triggered very late, potentially after SG backend API plugins have been unloaded. This results in crashes when used in combination with scenegraph-playgrounds's customcontext. Partially revert the change and instead clean up at the time of QApp::aboutToQuit and make sure we also disconnect cleanly from all QQuickWindows. This change also ensures that QSGRenderLoop::windowDestroyed() gets called for all QQuickWindows registered with the render loop. This ensures that rendering stops and that scene graph nodes and resources will be cleaned up regardless of whether the application has remembered to delete the window or not. This is a good thing as it makes the scene graph shutdown a bit cleaner. Change-Id: I9cb9093979f8eac05542f118a6ff9cfe5c84f745 Reviewed-by: Paul Olav Tvete <[email protected]>
* | Compress touch events in QQuickWindow.Gunnar Sletta2014-05-051-0/+6
|/ | | | | | | | | | | | | | Instead of sending multiple touch updates per frame, we store the last one and flush the pending events just before we enter into the scene graph sync phase. [ChangeLog][QtQuick] QQuickWindow will compresses touch events and delivers at most one touch event per frame. Done-with: Robin Burchell <[email protected]> Change-Id: Ia0169bc4a3f0da67709b91ca65c326934b55d372 Reviewed-by: Laszlo Agocs <[email protected]> Reviewed-by: Shawn Rutledge <[email protected]>
* Consolidate context creation failure handling in Quick.Friedemann Kleint2014-03-131-10/+33
| | | | | | | | | Add QQuickWidget::sceneGraphError() equivalent to QQuickWindow::sceneGraphError(), move message formatting code to QQuickWindowPrivate. Change-Id: I18cd4d7e0f6ee1011c29375218dc6a044b0d2cf2 Reviewed-by: Laszlo Agocs <[email protected]>
* Remove isES() usage in scenegraphLaszlo Agocs2014-03-041-1/+1
| | | | | | | | | The error signal patch added some usages of QOpenGLFunctions::isES(). These need to be temporarily removed. Change-Id: Ibd1d8094059020708aefe4b3502ba56d624928b3 Reviewed-by: Friedemann Kleint <[email protected]> Reviewed-by: Jørgen Lind <[email protected]>
* Introduced a few more signals to QQuickWindow.Gunnar Sletta2014-02-251-3/+5
| | | | | | | | | | | | Also marked the new afterAnimation() signal as \since 5.3 and introduced proper revisioning on the new signals. [Changelog][QtQuick] Added QQuickWindow::afterSynchronizing(), openglContextCreated(), sceneGraphAboutToStop(). Useful for deeper integration with the rendering. Change-Id: I5532b310506c2432325595e55ef9307b8934abee Reviewed-by: Laszlo Agocs <[email protected]>
* Fix wrong assert in QSGRenderLoop::setInstanceMarco Bubke2014-02-251-1/+1
| | | | | | | | | The assert before test not if the scoped pointer is null but the pointer which was holding the scoping pointer. Task-number: QTBUG-36932 Change-Id: I7a5e51752446556c1796bb677fe69cbceffdd3e0 Reviewed-by: Gunnar Sletta <[email protected]>
* Add an error signal to QQuickWindowLaszlo Agocs2014-02-211-1/+10
| | | | | | | | | | | | | | When nothing is connected to this signal, an error will be printed or, in case of Windows, a message box will be shown. If there is something connected, it is up to the application to handle the error. [ChangeLog] Added a new sceneGraphError() signal to QQuickWindow which applications can use to detect errors like OpenGL context creation failures and react in their own custom ways. Task-number: QTBUG-36138 Change-Id: I33b1e5e0e3f25872af67c5bb5ae937e3470b25f3 Reviewed-by: Friedemann Kleint <[email protected]>
* Add a signal for syncing external animation systemsLaszlo Agocs2014-02-201-0/+2
| | | | | | | | | [ChangeLog] QQuickWindow will now emit the afterAnimating() signal from the gui thread before each scenegraph sync request. Change-Id: I4897c82f75066238e781455d4fce4fb6bbe2558e Reviewed-by: Pasi Keränen <[email protected]> Reviewed-by: Lars Knoll <[email protected]>
* Move QtQuick profiling to own profiler adapterUlf Hermann2014-02-151-3/+3
| | | | | | | | The QtQuick parts of the QML profiler service thus become a proper global profiler which can be independently enabled and disabled. Change-Id: Ifad03801cab2be66a264fc46fdebdae582fcc99b Reviewed-by: Kai Koehne <[email protected]>
* Merge remote-tracking branch 'origin/stable' into devSimon Hausmann2014-02-111-11/+12
|\ | | | | | | | | | | | | | | | | Conflicts: src/qml/compiler/qv4ssa.cpp src/qml/jsruntime/qv4arrayobject.cpp src/qml/jsruntime/qv4context.cpp Change-Id: Ied5b23bec4dc14abe51127c507aed668f855c1e1