diff options
Diffstat (limited to 'src/qml/qml/v8/qv8qobjectwrapper.cpp')
-rw-r--r-- | src/qml/qml/v8/qv8qobjectwrapper.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/qml/qml/v8/qv8qobjectwrapper.cpp b/src/qml/qml/v8/qv8qobjectwrapper.cpp index bee176f829..14694a52fd 100644 --- a/src/qml/qml/v8/qv8qobjectwrapper.cpp +++ b/src/qml/qml/v8/qv8qobjectwrapper.cpp @@ -440,20 +440,17 @@ static v8::Handle<v8::Value> LoadProperty(QV8Engine *engine, QObject *object, } else if (property.isQVariant()) { QVariant v; ReadFunction(object, property, &v, notifier); - if (QQmlValueTypeFactory::isValueType(v.userType()) && engine->engine()) { - QQmlEnginePrivate *ep = QQmlEnginePrivate::get(engine->engine()); - QQmlValueType *valueType = ep->valueTypes[v.userType()]; - if (valueType) + + if (QQmlValueTypeFactory::isValueType(v.userType())) { + if (QQmlValueType *valueType = QQmlValueTypeFactory::valueType(v.userType())) return engine->newValueType(object, property.coreIndex, valueType); // VariantReference value-type. } + return engine->fromVariant(v); - } else if (QQmlValueTypeFactory::isValueType((uint)property.propType) - && engine->engine()) { + } else if (QQmlValueTypeFactory::isValueType(property.propType)) { Q_ASSERT(notifier == 0); - QQmlEnginePrivate *ep = QQmlEnginePrivate::get(engine->engine()); - QQmlValueType *valueType = ep->valueTypes[property.propType]; - if (valueType) + if (QQmlValueType *valueType = QQmlValueTypeFactory::valueType(property.propType)) return engine->newValueType(object, property.coreIndex, valueType); } else { Q_ASSERT(notifier == 0); |