diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2011-12-12 15:32:17 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-12-12 16:52:08 +0100 |
commit | ed8b3c21cecd08d28ea1c978633069ce0b6b7767 (patch) | |
tree | 4623c1fb063d2f0a75828933e074a736d8817cd5 /src/declarative | |
parent | 0c4c295936e03fb1a3f2f0ec007a2253ae52f90d (diff) |
V8: Minor cleanup
Moved context creation into the QV8Engine constructor body. That will make
it easier to execute other initialization stuff in the future, such as
per-thread isolate creation.
Change-Id: Id4aef76d3664a3810143907d2201203b18745a47
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Diffstat (limited to 'src/declarative')
-rw-r--r-- | src/declarative/qml/v8/qscriptoriginalglobalobject_p.h | 5 | ||||
-rw-r--r-- | src/declarative/qml/v8/qv8engine.cpp | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/declarative/qml/v8/qscriptoriginalglobalobject_p.h b/src/declarative/qml/v8/qscriptoriginalglobalobject_p.h index c0a761f518..8156e22229 100644 --- a/src/declarative/qml/v8/qscriptoriginalglobalobject_p.h +++ b/src/declarative/qml/v8/qscriptoriginalglobalobject_p.h @@ -49,7 +49,8 @@ class QV8Engine; class QScriptOriginalGlobalObject { public: - inline QScriptOriginalGlobalObject(v8::Handle<v8::Context> context); + inline QScriptOriginalGlobalObject() {} + inline void init(v8::Handle<v8::Context> context); inline void destroy(); inline QJSValue::PropertyFlags getPropertyFlags(v8::Handle<v8::Object> object, v8::Handle<v8::Value> property); @@ -63,7 +64,7 @@ private: v8::Persistent<v8::Object> m_globalObject; }; -QScriptOriginalGlobalObject::QScriptOriginalGlobalObject(v8::Handle<v8::Context> context) +void QScriptOriginalGlobalObject::init(v8::Handle<v8::Context> context) { // Please notice that engine is not fully initialized at this point. diff --git a/src/declarative/qml/v8/qv8engine.cpp b/src/declarative/qml/v8/qv8engine.cpp index e5bb26c0de..9ed14d3cf2 100644 --- a/src/declarative/qml/v8/qv8engine.cpp +++ b/src/declarative/qml/v8/qv8engine.cpp @@ -120,8 +120,6 @@ QV8Engine::QV8Engine(QJSEngine* qq, QJSEngine::ContextOwnership ownership) : q(qq) , m_engine(0) , m_ownsV8Context(ownership == QJSEngine::CreateNewContext) - , m_context((ownership == QJSEngine::CreateNewContext) ? v8::Context::New() : v8::Persistent<v8::Context>::New(v8::Context::GetCurrent())) - , m_originalGlobalObject(m_context) , m_xmlHttpRequestData(0) , m_sqlDatabaseData(0) , m_listModelData(0) @@ -136,7 +134,9 @@ QV8Engine::QV8Engine(QJSEngine* qq, QJSEngine::ContextOwnership ownership) v8::V8::SetFlagsFromString(v8args.constData(), v8args.length()); v8::HandleScope handle_scope; + m_context = (ownership == QJSEngine::CreateNewContext) ? v8::Context::New() : v8::Persistent<v8::Context>::New(v8::Context::GetCurrent()); qPersistentRegister(m_context); + m_originalGlobalObject.init(m_context); v8::Context::Scope context_scope(m_context); v8::V8::SetUserObjectComparisonCallbackFunction(ObjectComparisonCallback); |