- 04 Nov, 2014 - 1 commit
-
-
Liang Jian authored
Use the correct destructor in QV4::QQmlSequence::destroy() to prevent memory leak Change-Id: If9531f731abe5cd9aecfb9642ebf4f5108978f99 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
- 31 Oct, 2014 - 1 commit
-
-
Lars Knoll authored
The C++ standard doesn't allow calling member functions on a mull object. Fix all such places, by moving the checks to the caller where required. Change-Id: I10fb22acaf0324d8ffd3a6d8e19152e5d32f56bb Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
- 25 Aug, 2014 - 1 commit
-
-
Jani Heikkinen authored
- Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 & LICENSE.GPLv2 - Removed LICENSE.GPL Change-Id: I84a565e2e0caa3b76bf291a7d188a57a4b00e1b0 Reviewed-by:
Jani Heikkinen <jani.heikkinen@digia.com>
-
- 22 Jul, 2014 - 12 commits
-
-
Simon Hausmann authored
These are not needed anymore Change-Id: Ib834aa294e84ca9fbdd5b6850d5bc172e8b54ba1 Reviewed-by:
Lars Knoll <lars.knoll@digia.com>
-
Lars Knoll authored
The as<> casting method was not doing the right thing in 100% of the cases. It only checked if the object in question was exactly of the type being asked for. It however didn't check if the object was derived from the type. This commit fixes this by adding a parent chain to the vtables, that is then being used to check this safely at runtime. Change-Id: I9e0b13adbda668aee8c7451e2bb71cd6d4e316d9 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
Simon Hausmann authored
Instead of allocating the data directly, centralize the object and its ::Data allocation in one place in the memory manager. This is in preparation for additional pointer indirection later. Change-Id: I7880e1e7354b3258b6a8965be378cd09c9467d25 Reviewed-by:
Lars Knoll <lars.knoll@digia.com>
-
Lars Knoll authored
Change-Id: I11701c586d4715c08feba4650e12904c3fa7ca27 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
Lars Knoll authored
Change-Id: I31b2a1ba4a93f0d4bde68eeb94f13e7224c0cd7b Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
Lars Knoll authored
Change-Id: I705e2362dcda542f56826dadec6b0a6f15848788 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
Lars Knoll authored
Change-Id: I9ee531c903317a0f324671d98af1f967b684915c Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
Lars Knoll authored
Remove the Ref classes, as they won't be required anymore once Managed and Managed::Data are separated. Change-Id: Ic6bec2d5b4ecf2595ce129dbb45bbf6a385138a5 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
Lars Knoll authored
Change-Id: I9fcc13da5360f37cef3149b114ed9263b9b74281 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
Lars Knoll authored
The _NEW variant was there only temporarily to aid converting to the new data layout. Change-Id: I1d126ee0999c8f0a49f5a08c2e8c090497dd6dd5 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
Lars Knoll authored
Change-Id: I5b9c4e765eb2b1c5de59e1991b94b7179660d153 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
Lars Knoll authored
This prepares for moving over to a d pointer scheme, where Managed subclasses don't hold any data directly. This is required to be able to move over to a modern GC. Change-Id: I3f59633ac07a7da461bd2d4f0f9f3a8e3b0baf02 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
- 11 Mar, 2014 - 1 commit
-
-
Lars Knoll authored
Move all our runtime methods into the QV4::Runtime struct and give them nicer names without underscores. Sort them logically and remove a few unused methods. Change-Id: Ib69b71764ff194d0ba211aac581f9a99734d8180 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
- 04 Feb, 2014 - 1 commit
-
-
Simon Hausmann authored
In some places we allocate custom array objects and in the constructor we call setArrayType, which will allocate the array's data through the GC. In all of these cases we need to make sure that the array object itself is protected from garbage collection, because while in the constructor it may not be yet in the scope the callee has usually set up. Change-Id: I96b7af4ae00fd809067e12bacd6563984c5e9240 Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
- 21 Jan, 2014 - 1 commit
-
-
Lars Knoll authored
Keep the basic methods in ManagedVTable, but have the Object related stuff in an ObjectVTable class. Change-Id: I9b068acf3caef813686227b8d935e7df1a7d1a6e Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
- 20 Jan, 2014 - 1 commit
-
-
Lars Knoll authored
Change-Id: Iac4cb2a2252b18e40455910e51e3e374df7c1e80 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
- 09 Jan, 2014 - 1 commit
-
-
Lars Knoll authored
Split up ArrayData into two classes, one for regular arrays, one for sparse arrays and cleanly separate the two cases. Only create array data on demand. Change-Id: I9ca8d0b53592174f213ba0f20caf93e77dba690a Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
- 03 Jan, 2014 - 1 commit
-
-
Lars Knoll authored
Move the type flag into the vtable to free up these bits in the Managed class, and not have to set them at object construction time. As we often need to know whether a Managed object is a Object, FunctionObject or String, add some bitflags to test for these to the vtable. Change-Id: I7d08ca044544debb307b55f124f34cb086ad9e84 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
- 04 Dec, 2013 - 3 commits
-
-
Lars Knoll authored
Encapsulate accesses to the current context, and rework the way we push and pop this context from the context stack. Largely a cleanup, but simplifies the code in the long term Change-Id: I409e378490d0ab027be6a4c01a4031b2ea35c51d Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
Lars Knoll authored
Remove all the calls to setVTable that were in performance critical parts of the code. This now brings performance back to the level we had with the vtable inlined in the Managed objects. Change-Id: I76317cc5c53b5b700d1d3883b954407142a4c424 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
Lars Knoll authored
This saves one pointer per object, and willmake other optimizations easier in the future. Change-Id: I1324cad31998896b5dc76af3c8a7ee9d86283bfe Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
- 09 Nov, 2013 - 1 commit
-
-
Lars Knoll authored
Get rid of the SimpleCallContext, instead simply use the CallContext data structure, but don't initialize the unused variables. Change-Id: I11b311986da180c62c815b516a2c55844156d0ab Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
- 04 Nov, 2013 - 1 commit
-
-
Erik Verbruggen authored
Change-Id: Ic0492fbe31a1e134674bc6c20381f735dd6d5b7a Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
- 29 Oct, 2013 - 2 commits
-
-
Lars Knoll authored
Don't write to objects if we have a pending exception to avoid any side effects. Change-Id: I9f93a9195a652dbae7033cc6ebb355d5d86e9b5e Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
Lars Knoll authored
We don't want to check for exceptions after every single line on our runtime methods. A better way to handle this is to add the check in all methods that have direct side effects (as e.g. writing to a property of the JS stack). We also need to return whereever we throw an exception. To simplify the code, ExecutionContext::throwXxx methods now return a ReturnedValue (always undefined) for convenience. Change-Id: Ide6c804f819c731a3f14c6c43121d08029c9fb90 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
- 14 Oct, 2013 - 1 commit
-
-
Lars Knoll authored
Inline calls to get_element if the base is an object with a simple array structure, and the index is an integer number. Implemented for 64bit only for now, saves ~25% on crypto.js Change-Id: I3e34a6409169d90d3937f62264707d52a6c2f9f7 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
- 11 Oct, 2013 - 2 commits
-
-
Lars Knoll authored
This makes pretty much all test cases pass with exact garbage collection. Change-Id: Ia874e3c17c3984afb7cfe370f9bd3ad8fe46699a Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
Lars Knoll authored
Change-Id: I32f61b7919797eef51a8705695787175b76244c4 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
- 02 Oct, 2013 - 3 commits
-
-
Simon Hausmann authored
This patch changes the exception handling API in the engine slightly, encapsulating any use of direct throw statements and catch blocks with concrete types. In the future we need to be able to change the way these are implemented, in order to ensure that the correct stack unwinding code is triggered for throw and re-throw. This patch separates the C++ exception object thrown from the V4 exception (that includes value, throwing context pointer) and stores the latter inside the engine. In order for that to compile, ExecutionEngine::StackTrace and StackFrame had to move into the QV4 namespace directly. In addition the syntax for catching exceptions changes from try { ... } catch (QV4::Exception &ex) { ex.accept(context); QV4::ScopedValue exceptionValue(scope, ex.value()); } to try { ... } catch (...) { QV4::ScopedValue exception(scope, context->catchException()); } Context::catchException() checks if there's a "current" exception in the engine, and if not assumes that we caught an unrelated exception and consequently re-throws. partiallyUnwind() is also gone and replaced with rethrowException(), in order to encapsulate the re-throw. Lastly, in the future nesting try/catch blocks isn't going to be possible due to limitations in the common C++ ABI with regards to foreign exceptions. Change-Id: Ic81c75b057a2147e3176d8e0b4d326c14278b47d Reviewed-by:
Lars Knoll <lars.knoll@digia.com>
-
Lars Knoll authored
Change-Id: Ie463efe600d498ce77d4b9e8b48abcfd61c1ab78 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
Lars Knoll authored
Change-Id: I3a9c48d53d8dbadcb9b32c00fcef1f89447c4b8c Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
- 01 Oct, 2013 - 1 commit
-
-
Laszlo Agocs authored
Change-Id: I1ce4ec8c9c671f0130c1530c772c1dd74f1fb1f4 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
- 30 Sep, 2013 - 2 commits
-
-
Lars Knoll authored
Change-Id: Ic146a964f2ff6b90eeceda90bf1834d7212386a5 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
Lars Knoll authored
Change-Id: I66c370680d7e6bee2e73a7a940aa96ab4009ec57 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
- 28 Sep, 2013 - 3 commits
-
-
Lars Knoll authored
replaced with call to the GC safe ExceutionEngine::newString() method. Change-Id: I7258296e75ca724ff42b94a0d147bc33a05f8f68 Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
Lars Knoll authored
This will simplify finding the remaining direct usages of QV4::Value that need fixing. Change-Id: I223099727436d5748027c84c53d9dfc4028e38ed Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-
Lars Knoll authored
Change-Id: I35f46cce4f243d4b8b2bac9244f8fc26836f413b Reviewed-by:
Simon Hausmann <simon.hausmann@digia.com>
-