From ed8b3c21cecd08d28ea1c978633069ce0b6b7767 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 12 Dec 2011 15:32:17 +0100 Subject: [PATCH] V8: Minor cleanup MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- .../qml/v8/qscriptoriginalglobalobject_p.h | 5 +++-- 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 c0a761f..8156e22 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 context); + inline QScriptOriginalGlobalObject() {} + inline void init(v8::Handle context); inline void destroy(); inline QJSValue::PropertyFlags getPropertyFlags(v8::Handle object, v8::Handle property); @@ -63,7 +64,7 @@ private: v8::Persistent m_globalObject; }; -QScriptOriginalGlobalObject::QScriptOriginalGlobalObject(v8::Handle context) +void QScriptOriginalGlobalObject::init(v8::Handle 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 e5bb26c..9ed14d3 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::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::New(v8::Context::GetCurrent()); qPersistentRegister(m_context); + m_originalGlobalObject.init(m_context); v8::Context::Scope context_scope(m_context); v8::V8::SetUserObjectComparisonCallbackFunction(ObjectComparisonCallback); -- 1.7.2.5