diff options
Diffstat (limited to 'src/qml/qml/qqmlmetatype.cpp')
-rw-r--r-- | src/qml/qml/qqmlmetatype.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/qml/qml/qqmlmetatype.cpp b/src/qml/qml/qqmlmetatype.cpp index b29df4d252..b7138e01b3 100644 --- a/src/qml/qml/qqmlmetatype.cpp +++ b/src/qml/qml/qqmlmetatype.cpp @@ -238,11 +238,14 @@ static QHashedString moduleFromUtf8(const char *module) void QQmlType::SingletonInstanceInfo::init(QQmlEngine *e) { + QV4::ExecutionEngine *v4 = QV8Engine::getV4(e->handle()); + v4->pushGlobalContext(); if (scriptCallback && scriptApi(e).isUndefined()) { setScriptApi(e, scriptCallback(e, e)); } else if (qobjectCallback && !qobjectApi(e)) { setQObjectApi(e, qobjectCallback(e, e)); } + v4->popContext(); } void QQmlType::SingletonInstanceInfo::destroy(QQmlEngine *e) @@ -920,7 +923,7 @@ int QQmlType::enumValue(const QHashedCStringRef &name, bool *ok) const return -1; } -int QQmlType::enumValue(const QHashedV8String &name, bool *ok) const +int QQmlType::enumValue(const QHashedV4String &name, bool *ok) const { Q_ASSERT(ok); *ok = true; @@ -994,7 +997,7 @@ QQmlType *QQmlTypeModule::type(const QHashedStringRef &name, int minor) return 0; } -QQmlType *QQmlTypeModule::type(const QHashedV8String &name, int minor) +QQmlType *QQmlTypeModule::type(const QHashedV4String &name, int minor) { QReadLocker lock(metaTypeDataLock()); @@ -1063,7 +1066,7 @@ QQmlType *QQmlTypeModuleVersion::type(const QHashedStringRef &name) const else return 0; } -QQmlType *QQmlTypeModuleVersion::type(const QHashedV8String &name) const +QQmlType *QQmlTypeModuleVersion::type(const QHashedV4String &name) const { if (m_module) return m_module->type(name, m_minor); else return 0; |