aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4enginebase_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2017-08-03 13:41:13 +0200
committerLars Knoll <lars.knoll@qt.io>2017-08-04 07:08:02 +0000
commitbe70a025c19bfbfadcab957df7b1185109f5e88e (patch)
tree103bfd243bd7bd786214bac7a2d7f41fda243284 /src/qml/jsruntime/qv4enginebase_p.h
parent40aa22e0fd8234a7a71abf0ef8f42524d306e0df (diff)
Don't store the current line number in the ExecutionContext
Instead modify our StackFrame struct to hold the QV4::Function and have a linked list of those for the frames. Change-Id: I8676e16bc51a5ba6cf25a5b3423576d44e8a926a Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4enginebase_p.h')
-rw-r--r--src/qml/jsruntime/qv4enginebase_p.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/qml/jsruntime/qv4enginebase_p.h b/src/qml/jsruntime/qv4enginebase_p.h
index b6ab0b7b68..55c44f33f1 100644
--- a/src/qml/jsruntime/qv4enginebase_p.h
+++ b/src/qml/jsruntime/qv4enginebase_p.h
@@ -64,6 +64,7 @@ namespace QV4 {
#endif
struct EngineBase {
Heap::ExecutionContext *current = 0;
+ StackFrame *currentStackFrame = 0;
Value *jsStackTop = 0;
quint8 hasException = false;
@@ -116,7 +117,8 @@ struct EngineBase {
Q_STATIC_ASSERT(std::is_standard_layout<EngineBase>::value);
Q_STATIC_ASSERT(offsetof(EngineBase, current) == 0);
-Q_STATIC_ASSERT(offsetof(EngineBase, jsStackTop) == offsetof(EngineBase, current) + QT_POINTER_SIZE);
+Q_STATIC_ASSERT(offsetof(EngineBase, currentStackFrame) == offsetof(EngineBase, current) + QT_POINTER_SIZE);
+Q_STATIC_ASSERT(offsetof(EngineBase, jsStackTop) == offsetof(EngineBase, currentStackFrame) + QT_POINTER_SIZE);
Q_STATIC_ASSERT(offsetof(EngineBase, hasException) == offsetof(EngineBase, jsStackTop) + QT_POINTER_SIZE);
Q_STATIC_ASSERT(offsetof(EngineBase, memoryManager) == offsetof(EngineBase, hasException) + QT_POINTER_SIZE);
Q_STATIC_ASSERT(offsetof(EngineBase, runtime) == offsetof(EngineBase, memoryManager) + QT_POINTER_SIZE);