diff options
author | Lars Knoll <lars.knoll@digia.com> | 2013-05-08 07:30:42 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2013-05-08 11:24:37 +0200 |
commit | 50d80a50cf122057acaa5773cae7f675982b3577 (patch) | |
tree | d38daab392934ca0892e0cbc9417610a2e7ec93e /src/qml/qml/v8 | |
parent | e3655ab7a7c121c05a53bc9c5861297e9159128f (diff) |
Convert qv8include to QV4::PersistentValue
Change-Id: I9764ad7d28932bd67e3d284415c26f1b3b837056
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/qml/v8')
-rw-r--r-- | src/qml/qml/v8/qv8include.cpp | 24 | ||||
-rw-r--r-- | src/qml/qml/v8/qv8include_p.h | 8 |
2 files changed, 16 insertions, 16 deletions
diff --git a/src/qml/qml/v8/qv8include.cpp b/src/qml/qml/v8/qv8include.cpp index 72b7868b9b..9794d85eff 100644 --- a/src/qml/qml/v8/qv8include.cpp +++ b/src/qml/qml/v8/qv8include.cpp @@ -56,11 +56,11 @@ QV8Include::QV8Include(const QUrl &url, QV8Engine *engine, QQmlContextData *cont v8::Handle<v8::Object> qmlglobal, v8::Handle<v8::Function> callback) : m_engine(engine), m_network(0), m_reply(0), m_url(url), m_redirectCount(0), m_context(context) { - m_qmlglobal = qPersistentNew<v8::Object>(qmlglobal); + m_qmlglobal = qmlglobal->v4Value(); if (!callback.IsEmpty()) - m_callbackFunction = qPersistentNew<v8::Function>(callback); + m_callbackFunction = callback->v4Value(); - m_resultObject = qPersistentNew<v8::Object>(resultValue()); + m_resultObject = resultValue()->v4Value(); m_network = engine->networkAccessManager(); @@ -74,8 +74,6 @@ QV8Include::QV8Include(const QUrl &url, QV8Engine *engine, QQmlContextData *cont QV8Include::~QV8Include() { delete m_reply; m_reply = 0; - qPersistentDispose(m_callbackFunction); - qPersistentDispose(m_resultObject); } v8::Handle<v8::Object> QV8Include::resultValue(Status status) @@ -103,7 +101,7 @@ void QV8Include::callback(QV8Engine *engine, v8::Handle<v8::Function> callback, v8::Handle<v8::Object> QV8Include::result() { - return m_resultObject; + return m_resultObject.value(); } #define INCLUDE_MAXIMUM_REDIRECT_RECURSION 15 @@ -144,21 +142,21 @@ void QV8Include::finished() v8::Handle<v8::Script> script = m_engine->qmlModeCompile(code, m_url.toString()); if (!try_catch.HasCaught()) { - m_engine->contextWrapper()->addSubContext(m_qmlglobal, script, importContext); - script->Run(m_qmlglobal); + m_engine->contextWrapper()->addSubContext(m_qmlglobal.value(), script, importContext); + script->Run(m_qmlglobal.value()); } if (try_catch.HasCaught()) { - m_resultObject->Set(v8::String::New("status"), v8::Integer::New(Exception)); - m_resultObject->Set(v8::String::New("exception"), try_catch.Exception()); + v8::Handle<v8::Object>(m_resultObject)->Set(v8::String::New("status"), v8::Integer::New(Exception)); + v8::Handle<v8::Object>(m_resultObject)->Set(v8::String::New("exception"), try_catch.Exception()); } else { - m_resultObject->Set(v8::String::New("status"), v8::Integer::New(Ok)); + v8::Handle<v8::Object>(m_resultObject)->Set(v8::String::New("status"), v8::Integer::New(Ok)); } } else { - m_resultObject->Set(v8::String::New("status"), v8::Integer::New(NetworkError)); + v8::Handle<v8::Object>(m_resultObject)->Set(v8::String::New("status"), v8::Integer::New(NetworkError)); } - callback(m_engine, m_callbackFunction, m_resultObject); + callback(m_engine, m_callbackFunction.value(), m_resultObject.value()); disconnect(); deleteLater(); diff --git a/src/qml/qml/v8/qv8include_p.h b/src/qml/qml/v8/qv8include_p.h index ab7b2ff8db..c7118c22ff 100644 --- a/src/qml/qml/v8/qv8include_p.h +++ b/src/qml/qml/v8/qv8include_p.h @@ -61,6 +61,8 @@ #include <private/qv8_p.h> +#include <private/qv4value_p.h> + QT_BEGIN_NAMESPACE class QQmlEngine; @@ -100,11 +102,11 @@ private: QUrl m_url; int m_redirectCount; - v8::Persistent<v8::Function> m_callbackFunction; - v8::Persistent<v8::Object> m_resultObject; + QV4::PersistentValue m_callbackFunction; + QV4::PersistentValue m_resultObject; QQmlGuardedContextData m_context; - v8::Persistent<v8::Object> m_qmlglobal; + QV4::PersistentValue m_qmlglobal; }; QT_END_NAMESPACE |