diff options
author | Lars Knoll <lars.knoll@theqtcompany.com> | 2015-04-28 19:15:25 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@theqtcompany.com> | 2015-06-17 07:40:03 +0000 |
commit | a914b186671090f1ec2ac80fa14b4aef19e8d563 (patch) | |
tree | 08ddf9049c59cd6c12a4e2c5eeeb86eb3a46d75c /src/qml/jsruntime/qv4engine.cpp | |
parent | 668e4b739a92dd9dbec2d4df76fe9197506c25d9 (diff) |
Store rootcontext in a GC safe way
Change-Id: If81d638c0ccd2b34df918ae5055e309f4eae031f
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Diffstat (limited to 'src/qml/jsruntime/qv4engine.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4engine.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index 211c16d400..37b5964bd3 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -401,8 +401,8 @@ ExecutionEngine::ExecutionEngine(EvalISelFactory *factory) // // set up the global object // - rootContext()->global = globalObject->d(); - rootContext()->callData->thisObject = globalObject; + rootContext()->d()->global = globalObject->d(); + rootContext()->d()->callData->thisObject = globalObject; Q_ASSERT(globalObject->d()->vtable); globalObject->defineDefaultProperty(QStringLiteral("Object"), *objectCtor()); @@ -504,7 +504,7 @@ void ExecutionEngine::initRootContext() r->d()->callData->thisObject = globalObject; r->d()->callData->args[0] = Encode::undefined(); - m_rootContext = r->d(); + jsObjects[RootContect] = r; } InternalClass *ExecutionEngine::newClass(const InternalClass &other) @@ -516,7 +516,7 @@ Heap::ExecutionContext *ExecutionEngine::pushGlobalContext() { Scope scope(this); Scoped<GlobalContext> g(scope, memoryManager->alloc<GlobalContext>(this)); - g->d()->callData = rootContext()->callData; + g->d()->callData = rootContext()->d()->callData; Q_ASSERT(currentContext() == g->d()); return g->d(); @@ -774,7 +774,7 @@ QVector<StackFrame> ExecutionEngine::stackTrace(int frameLimit) const StackFrame frame; frame.source = globalCode->sourceFile(); frame.function = globalCode->name()->toQString(); - frame.line = rootContext()->lineNumber; + frame.line = rootContext()->d()->lineNumber; frame.column = -1; stack.append(frame); |