diff options
Diffstat (limited to 'src/qml/jsruntime/qv4executablecompilationunit.cpp')
| -rw-r--r-- | src/qml/jsruntime/qv4executablecompilationunit.cpp | 16 |
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 |
