aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/v8/qv8qobjectwrapper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/qml/v8/qv8qobjectwrapper.cpp')
-rw-r--r--src/qml/qml/v8/qv8qobjectwrapper.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/qml/qml/v8/qv8qobjectwrapper.cpp b/src/qml/qml/v8/qv8qobjectwrapper.cpp
index 2329bcfc63..79f221e8bc 100644
--- a/src/qml/qml/v8/qv8qobjectwrapper.cpp
+++ b/src/qml/qml/v8/qv8qobjectwrapper.cpp
@@ -1412,19 +1412,19 @@ static int MatchScore(v8::Handle<v8::Value> actual, int conversionType)
}
}
} else if (actual->IsObject()) {
- v8::Handle<v8::Object> obj = v8::Handle<v8::Object>::Cast(actual);
+ QV4::Object *obj = actual->v4Value().asObject();
+ QV8Engine *engine = obj->engine()->publicEngine->handle();
- if (QV4::VariantObject *v = obj->v4Value().asVariantObject()) {
+ if (QV4::VariantObject *v = obj->asVariantObject()) {
if (conversionType == qMetaTypeId<QVariant>())
return 0;
- QV8Engine *engine = v->engine()->publicEngine->handle();
if (engine->toVariant(actual->v4Value(), -1).userType() == conversionType)
return 0;
else
return 10;
}
- if (obj->v4Value().asQObjectWrapper()) {
+ if (obj->asQObjectWrapper()) {
switch (conversionType) {
case QMetaType::QObjectStar:
return 0;
@@ -1433,9 +1433,8 @@ static int MatchScore(v8::Handle<v8::Value> actual, int conversionType)
}
}
- QV8ObjectResource *r = static_cast<QV8ObjectResource *>(obj->GetExternalResource());
- if (r && r->resourceType() == QV8ObjectResource::ValueTypeType) {
- if (r->engine->toVariant(actual->v4Value(), -1).userType() == conversionType)
+ if (QV4::QmlValueTypeWrapper *w = obj->asQmlValueTypeWrapper()) {
+ if (engine->toVariant(actual->v4Value(), -1).userType() == conversionType)
return 0;
return 10;
} else if (conversionType == QMetaType::QJsonObject) {