Commit Graph

11 Commits

Author SHA1 Message Date
Lars Knoll 43cdae853b Optimize some runtime methods
This prings performance up by ~25% again.

Change-Id: I680466e11b722b2eac0edda0fe4199b717d23855
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-09-18 13:14:16 +02:00
Lars Knoll 49aead7f23 Extend the ReturnedValue mechanism to pointers to Managed objects
Add a Returned<T> that we can return instead of raw pointers
to Managed objects.

Start using the Returned<T> for a few methods.

Also clean up all our classes to use the Q_MANAGED macro instead
of manually defining their vtable.

Change-Id: I0a2962e47f3de955cd2cd8474f8f3fcc9e36d084
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-09-18 13:14:03 +02:00
Lars Knoll 8d26084ae5 Use ReturnedValue for Managed::construct()
Change-Id: I9e702d60c4e1b7ba19a699ff7a8d53876d6cd5f7
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-09-18 13:13:30 +02:00
Lars Knoll 1a2a83f80b Use a ReturnedValue for Managed::call()
Change-Id: Ief2d75e9789dd367c603d90dc0fe5316a0d055e3
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-09-18 13:13:18 +02:00
Lars Knoll 262d726103 Continue conversion to using scoped values
This converts all methods in qv4runtime_p.h to not
use raw values in arguments anymore.

The conversion of return values will be done in a separate
commit.

Change-Id: Ie6e8f3bed459d09cb831f7f87920b7eada161502
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-09-11 13:02:23 +02:00
Lars Knoll f9fda643ab Change signature of call/construct() to take a pointer to a CallData
Change-Id: I5467aadba083e4b01fb0a7170946695207033680
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-09-11 13:01:57 +02:00
Lars Knoll 6f472680eb change calling convention for JS function calls
This allows faster pass through of the data if we have
nested calls.

Also make sure we always reserve at least
QV4::Global::ReservedArgumentCount Values on the
stack to avoid stack corruption.

Change-Id: I42976460f1ef11a333d4adda70fba8daac66acf3
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-09-02 17:27:36 +02:00
Friedemann Kleint e5e9f5de59 Silence MinGW/gcc-4.8.1 compiler warnings.
Reorder V4::Object's and V4::Value's private object inline functions
such that its definitions are visible from where they are being
referenced.

qv4object_p.h:418:13: warning: 'uint QV4::Object::arrayLength() const'
redeclared without dllimport attribute after being referenced with dll
linkage

qv4object_p.h:430:13: warning:
'void QV4::Object::setArrayLengthUnchecked(uint)' redeclared without
dllimport attribute after being referenced with dll linkage

Change-Id: I49a3c9d1da637eaf038f53b29ec13c35253de9f1
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-08-26 23:51:31 +02:00
Erik Verbruggen 0c0dbff655 Small typo fixes.
Change-Id: I4aca4e02e06700738337d92ebfc18995184a31f6
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-08-17 15:24:56 +02:00
Alex Blasche 2f9746fbc4 Export V4::PersistentValuePrivate
Indirectly required by QtLocation and its use of QJSValuePrivate

Change-Id: Iea5bca47af8195e344d17fe2b82118141656d997
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-08-12 13:29:27 +02:00
Lars Knoll 3288b87e2f Restructure source code
Move the v4 engine classes from a subdir of qml/qml into
two subdirs (compiler and jsruntime) of the qml module
Remove an unsued qv4syntaxchecker class, and move
the moth code directly into compiler.

Change-Id: I6929bede1f25098e6cb2e68087e779fac16b0c68
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-08-08 12:22:30 +02:00