aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4executablecompilationunit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/jsruntime/qv4executablecompilationunit.cpp')
-rw-r--r--src/qml/jsruntime/qv4executablecompilationunit.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/qml/jsruntime/qv4executablecompilationunit.cpp b/src/qml/jsruntime/qv4executablecompilationunit.cpp
index 5e9361a066..bb05d623e3 100644
--- a/src/qml/jsruntime/qv4executablecompilationunit.cpp
+++ b/src/qml/jsruntime/qv4executablecompilationunit.cpp
@@ -299,8 +299,8 @@ void ExecutableCompilationUnit::markObjects(QV4::MarkStack *markStack) const
runtimeLookups[i].markObjects(markStack);
}
- if (auto mod = module())
- mod->mark(markStack);
+ if (Heap::Base *v = m_valueOrModule.heapObject())
+ v->mark(markStack);
}
IdentifierHash ExecutableCompilationUnit::createNamedObjectsPerComponent(int componentObjectIndex)
@@ -705,6 +705,18 @@ QString ExecutableCompilationUnit::translateFrom(TranslationDataIndex index) con
#endif
}
+Heap::Module *ExecutableCompilationUnit::module() const
+{
+ if (const Module *m = m_valueOrModule.as<QV4::Module>())
+ return m->d();
+ return nullptr;
+}
+
+void ExecutableCompilationUnit::setModule(Heap::Module *module)
+{
+ m_valueOrModule = module;
+}
+
} // namespace QV4
QT_END_NAMESPACE