Commits (27)
-
Simon Hausmann authored
It turns out that in QML it is not unusual that during early binding evaluations due to the undefined order, the evaluation tries to look up properties in objects that aren't initialized yet and thus exceptions are thrown. Eeach thrown exception saves a stack trace, which is expensive to generate when using the JIT, as it does full stack unwinding. This patch implements a more light-weight approach by storing the instruction pointer in the context before leaving JIT generated code. Change-Id: I95e1cfd01179247dfc2c1df949828f474a23161b Reviewed-by:
Lars Knoll <lars.knoll@digia.com>
c1c526aa -
Simon Hausmann authored
Avoid catch (...) with re-throw as it turns that this is very slow because it throws a new exception and the unwinder starts from scratch. Instead use stack allocated objects and cleaning destructors to restore state before continuing with the propagation of exceptions. Change-Id: I6d95026bcd60b58cb6258a9dae28623a46739532 Reviewed-by:
Lars Knoll <lars.knoll@digia.com>
12c35791 -
Simon Hausmann authored
Commit 84627464 introduced a performance regression of falling back to reading the QMetaObject, when the lookup for a property in QML failed, after we've tried in the property cache. This is very very expensive to do and was only due to QQmlPropertyMap not correctly invalidating the property cache. Instead remove the property cache from the property map's QObject and on the lookup side rely on the property cache being correct in the result (positive or negative). Change-Id: I8a013483203f2007d48b71feafa10b3ea02c53fd Reviewed-by:
Lars Knoll <lars.knoll@digia.com>
7b1a8fa8 -
Erik Verbruggen authored
Added VADD/VSUB/VLDR/VSTR. Change-Id: I25fbb338652c3457e15cc9ef17209d35c63fefe5 Reviewed-by:
Lars Knoll <lars.knoll@digia.com>
0640fbc8 -
Simon Hausmann authored
We want to allow intermixing thumb and ARM for all builds, not only Android. Modified the macro to do a thumb-compatible null pointer check. This also works around a miscompilation on QNX where the compiler appeared to make incorrect assumptions about the address of functions we are taking. Change-Id: Ib8fc400178e0c2621bde2ca94b3f94041591e19a Reviewed-by:
Lars Knoll <lars.knoll@digia.com>
4deb9338 -
Simon Hausmann authored
At least do a printf with the failure details, to make debugging easier. Change-Id: I092d31e3408cd0a651c6dd96b5fd94adf4abe3a7 Reviewed-by:
Lars Knoll <lars.knoll@digia.com>
a443af35 -
Simon Hausmann authored
We don't support the traditional ARM assembler (yet), only JIT on thumb2. In order for us to reliably check that, we have to wait until the pre-processor runs, which this patch achieves by moving all JIT enable/disable decisions into qv4global_p.h Change-Id: I7eff5b4fbf1cd26297a08dee16984ad867358113 Reviewed-by:
Lars Knoll <lars.knoll@digia.com>
3cbc607b -
Simon Hausmann authored
Define NDEBUG to disable them. Change-Id: Ie1f08863b9b483216be2c0768b505f2e9e7ccef8 Reviewed-by:
Lars Knoll <lars.knoll@digia.com>
a2bdaf07 -
Kai Koehne authored
Otherwise Qt Creator will block forever ... Change-Id: I2ffe5e826c10338aeb4ded7079154fe83710c108 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
f5e39c41 -
Kai Koehne authored
QSGRenderThread::syncAndRender first triggers the frameSwapped() signal, and only then adds the SceneGraphRenderLoopFrame message. We're waiting for the frameSwapped signal to stop profiling, and therefore can't be sure whether we'll get the final SceneGraphRenderLoopFrame message or not. Task-number: QTBUG-33024 Change-Id: I3216667e8e5cdc79f210290ce22cc6b08c579b6a Reviewed-by:
Lars Knoll <lars.knoll@digia.com>
a8cfbf6a -
Fabian Bumberger authored
Change-Id: I8d012e9a356676dd3dad246579c7339eaddc1e91 Reviewed-by:
Alan Alpert <aalpert@blackberry.com> Reviewed-by:
Alex Blasche <alexander.blasche@digia.com>
83c466dd -
Simon Hausmann authored
Other tools in tools could theoretically be using QML modules, so qt.prf tries to use the qmlimportscanner on them. That means we have to build it before all the other tools. Change-Id: I5ee49d0f3f4f3bf73183a6be9414c8d0e926bdf1 Reviewed-by:
Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2ec14c7b -
Simon Hausmann authored
__TARGET_ARCH_THUMB may not always be defined, but __thumb2__ for example is also a good indicator that we can generated and run thumb2 code and thus enable the JIT. Change-Id: I987d0af5883d9bb844c4c99a0691a12aedc94ff5 Reviewed-by:
Lars Knoll <lars.knoll@digia.com>
9c5ff1e6 -
Shawn Rutledge authored
QML_FILES are installed with the qml plugin they belong to. This is helpful for debugging, but redundant because the same QML is also packaged as resources (after 8780af05b1bc63aa71c3a318972465ffdb830070). Task-number: QTBUG-31565 Change-Id: I0b277b62b48e0a742f3ef2ff6ee2a81cc071295e Reviewed-by:
Caroline Chao <caroline.chao@digia.com>
799e2bb8 -
Bernd Weimer authored
On BB10 the shader effect displayed as a black rectangle. Change-Id: I9cd12e66875c07cc7ecfa2aec6d7e5912926511e Reviewed-by:
Alan Alpert <aalpert@blackberry.com> Reviewed-by:
Paul Olav Tvete <paul.tvete@digia.com>
436b8397 -
Lars Knoll authored
Change-Id: Ib2e08e7c89ca59a48f8fd52b30981e5d7e60803b Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
f0eaaef4 -
Lars Knoll authored
QQmlError is public API and shouldn't expose an internal method. Change-Id: I7caf06af9340fefec5c96103395fe74acbf19497 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
9fd4591a -
Simon Hausmann authored
With a growing number of functions per module, these calls become expensive and are unnecessary. defineFunction in the code generator can simply return the correct index right away. Change-Id: I8ab56a3083bf215674a1b46c502b415be694e465 Reviewed-by:
Lars Knoll <lars.knoll@digia.com>
6b2b62e9 -
Simon Hausmann authored
* Run the binding expressions, functions and signal handlers through the V4 codegen _per_ component, and run the isel at the end for the entire file. We need to do per-component codegen because we want to set up the correct id and object scopes, which are different for the root component and anonymous components. * Changed V4IR::Module to allow for the concept of "qml modules" where there is no root function defined. This is a logical consequence of running v4 codegen multiple times with different input but the same V4IR::Module. Change-Id: Ib3a719f83507cbab7c2e4e145ccad5b663c795cf Reviewed-by:
Lars Knoll <lars.knoll@digia.com>
b93ddb95 -
Albert Astals Cid authored
Otherwise the next dataChanged from the model may not be received Change-Id: I16b859d92fdb1823c4a56c297d4451abe438fbb1 Reviewed-by:
Stephen Kelly <stephen.kelly@kdab.com>
9bbb0735 -
Oswald Buddenhagen authored
Change-Id: Iefdaf60edbe47d2941a0696d96e7b79a67b46d8d Reviewed-by:
Joerg Bornemann <joerg.bornemann@digia.com>
9e0e3207 -
Sergio Ahumada authored
Use the correct identifier for the OS X operating system. Change-Id: Iff433d312c7c808ddce13466be3db628cf3a9890 Reviewed-by:
Jake Petroules <jake.petroules@petroules.com> Reviewed-by:
Eike Ziller <eike.ziller@digia.com>
19d68067 -
Gunnar Sletta authored
A texture based node without a valid texture is not allowed, as the material and the renderer will only tolerate well-formed nodes. If a node is missing any part of its material state it should not be in the scene graph in the first place. Because of an "optimization" in QSGDefaultImageNode::setTexture and QSGSimpleTextureNode::setTexture, we must temporarily set the texture to 0 to ensure that it gets updated properly. This temporarily puts the node into an invalid state which can lead to crashes when QSGNode::markDirty() reaches the renderer. Task-number: QTBUG-34062 Change-Id: Ic1735c9b974b90b3684262de9589133c961bac6e Reviewed-by:
Laszlo Agocs <laszlo.agocs@digia.com>
486d367e -
Simon Hausmann authored
This reverts the commit that deprecated the with statement and added a note to the docs that binding expressions will be compiled in strict mode in Qt 5.2. It turns out that we had to keep the with statement and enabling strict mode breaks just too much unfortunately. Change-Id: Id38c27f684fbfcb6b6b848be8f691658089d1adb Reviewed-by:
Lars Knoll <lars.knoll@digia.com>
8a6fadb3 -
Yuchen Deng authored
Change-Id: I79b50e786f46c9a15963f09158c18871c95fe093 Reviewed-by:
Peter Kümmel <syntheticpp@gmx.net> Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
a3f01331 -
Sean Harmer authored
The "texture" keyword is a function name in OpenGL core profile. This commit is in preparation for making the Qt Quick 2 renderer and materials work with a core profile context. Change-Id: Iad243e64ab8db739fc46b85bb626bdb8b9ceb208 Reviewed-by:
James Turner <james.turner@kdab.com> Reviewed-by:
Gunnar Sletta <gunnar.sletta@digia.com>
de31a576 -
Antti Piira authored
Implements QQmlCodeGenerator::visit(AST::UiPragma *) to process any pragma statements in a QML file for the new V4 compiler approach. Only pragma Singleton is supported, others will generate errors. Also adds necessary hooks to treat types as Singletons. Basic functionality is working, but three of the QML Singleton unit tests fail. Some of them are dependent on other language capabilities that seem to have problems. In addition removes unnecessary toString() call in the equivalent visit(AST::UiPragma *) function of the old parser. Change-Id: Iec9fa887f953b80b7f9a11878d846637a8f519ef Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
9de3630a
Showing