diff options
author | Lars Knoll <lars.knoll@qt.io> | 2018-05-25 09:03:51 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2018-05-26 06:49:04 +0000 |
commit | 6cbc287c06dd61988f2d4f4de253d89103919d2e (patch) | |
tree | 01565851b8548e9932a5adbbf342ce99eb298415 /src/qml/jsruntime/qv4jscall_p.h | |
parent | 9ff4c5c2168fcc616770389ee826190708258114 (diff) |
Cleanup JS stack allocations
Avoid double writes to the stack, and use scope.alloc() for
most allocations on the stack.
Change-Id: I8b89273c1b6796d955fc8eeb72c67cff208ef786
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4jscall_p.h')
-rw-r--r-- | src/qml/jsruntime/qv4jscall_p.h | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/qml/jsruntime/qv4jscall_p.h b/src/qml/jsruntime/qv4jscall_p.h index c676b57c51..e186285025 100644 --- a/src/qml/jsruntime/qv4jscall_p.h +++ b/src/qml/jsruntime/qv4jscall_p.h @@ -67,7 +67,7 @@ struct JSCallData { if (thisObject) this->thisObject = const_cast<Value *>(thisObject); else - this->thisObject = scope.alloc(1); + this->thisObject = scope.alloc(); if (argv) this->args = const_cast<Value *>(argv); else @@ -80,8 +80,7 @@ struct JSCallData { CallData *callData(const FunctionObject *f = nullptr) const { int size = int(offsetof(QV4::CallData, args)/sizeof(QV4::Value)) + argc; - CallData *ptr = reinterpret_cast<CallData *>(scope.engine->jsStackTop); - scope.engine->jsStackTop += size; + CallData *ptr = reinterpret_cast<CallData *>(scope.alloc<Scope::Uninitialized>(size)); ptr->function = Encode::undefined(); ptr->context = Encode::undefined(); ptr->accumulator = Encode::undefined(); |