From 093c9c94189018381a0e155b0fa421cc73dbb704 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 13 May 2013 18:39:57 +0200 Subject: [PATCH] Change some APIs in qv8variantwrapper over to be v4 based Change-Id: Idfba6a92bc23dbb8fe14d67ed4a4be901dc0e10a Reviewed-by: Simon Hausmann --- src/qml/qml/v8/qv8engine.cpp | 4 ++-- src/qml/qml/v8/qv8variantwrapper.cpp | 19 +++++++++++-------- src/qml/qml/v8/qv8variantwrapper_p.h | 6 +++--- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/qml/qml/v8/qv8engine.cpp b/src/qml/qml/v8/qv8engine.cpp index 88e9adf..1989541 100644 --- a/src/qml/qml/v8/qv8engine.cpp +++ b/src/qml/qml/v8/qv8engine.cpp @@ -414,7 +414,7 @@ QV4::Value QV8Engine::fromVariant(const QVariant &variant) // + QObjectList // + QList - return m_variantWrapper.newVariant(variant)->v4Value(); + return m_variantWrapper.newVariant(variant); } // A handle scope and context must be entered @@ -1053,7 +1053,7 @@ QV4::Value QV8Engine::metaTypeToJS(int type, const void *data) return QV4::Value::nullValue(); } else { // Fall back to wrapping in a QVariant. - result = variantWrapper()->newVariant(QVariant(type, data))->v4Value(); + result = variantWrapper()->newVariant(QVariant(type, data)); } } } diff --git a/src/qml/qml/v8/qv8variantwrapper.cpp b/src/qml/qml/v8/qv8variantwrapper.cpp index 10170ab..36ee8ac 100644 --- a/src/qml/qml/v8/qv8variantwrapper.cpp +++ b/src/qml/qml/v8/qv8variantwrapper.cpp @@ -129,7 +129,7 @@ void QV8VariantWrapper::destroy() { } -v8::Handle QV8VariantWrapper::newVariant(const QVariant &value) +QV4::Value QV8VariantWrapper::newVariant(const QVariant &value) { bool scarceResource = value.type() == QVariant::Pixmap || value.type() == QVariant::Image; @@ -149,18 +149,21 @@ v8::Handle QV8VariantWrapper::newVariant(const QVariant &value) } rv->SetExternalResource(r); - return rv; + return rv->v4Value(); } -bool QV8VariantWrapper::isVariant(v8::Handle value) +bool QV8VariantWrapper::isVariant(const QV4::Value &v) { - return value->IsObject() && v8_resource_cast(value->ToObject()); + if (!v.isObject()) + return false; + v8::Handle vv(v); + return v8_resource_cast(vv); } -QVariant QV8VariantWrapper::toVariant(v8::Handle obj) +QVariant QV8VariantWrapper::toVariant(const QV4::Value &v) { - QV8VariantResource *r = v8_resource_cast(obj); - return r?r->data:QVariant(); + QV8VariantResource *r = v8_resource_cast(v); + return r ? r->data : QVariant(); } QVariant QV8VariantWrapper::toVariant(QV8ObjectResource *r) @@ -171,7 +174,7 @@ QVariant QV8VariantWrapper::toVariant(QV8ObjectResource *r) QVariant &QV8VariantWrapper::variantValue(v8::Handle value) { - Q_ASSERT(isVariant(value)); + Q_ASSERT(isVariant(value->v4Value())); QV8VariantResource *r = v8_resource_cast(value->ToObject()); return static_cast(r)->data; } diff --git a/src/qml/qml/v8/qv8variantwrapper_p.h b/src/qml/qml/v8/qv8variantwrapper_p.h index b1b515e..5f047c4 100644 --- a/src/qml/qml/v8/qv8variantwrapper_p.h +++ b/src/qml/qml/v8/qv8variantwrapper_p.h @@ -72,9 +72,9 @@ public: void init(QV8Engine *); void destroy(); - v8::Handle newVariant(const QVariant &); - static bool isVariant(v8::Handle); - static QVariant toVariant(v8::Handle); + QV4::Value newVariant(const QVariant &); + static bool isVariant(const QV4::Value &v); + static QVariant toVariant(const QV4::Value &v); static QVariant toVariant(QV8ObjectResource *); QVariant &variantValue(v8::Handle); -- 2.7.4