From df4add062fc7368d9fee7c697405c43422b0af27 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 10 Jun 2011 10:29:05 +1000 Subject: [PATCH] Use optimized QObject wrapper whenever it is possible --- src/declarative/qml/v8/qv8qobjectwrapper.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/declarative/qml/v8/qv8qobjectwrapper.cpp b/src/declarative/qml/v8/qv8qobjectwrapper.cpp index 02eb346..d1bf0e3 100644 --- a/src/declarative/qml/v8/qv8qobjectwrapper.cpp +++ b/src/declarative/qml/v8/qv8qobjectwrapper.cpp @@ -687,7 +687,6 @@ v8::Local QDeclarativePropertyCache::newQObject(QObject *object, QV8 v8::AccessorGetter fastgetter = 0; - if (property->isQObject()) fastgetter = QObjectValueGetter; else if (property->propType == QMetaType::Int || property->isEnum()) @@ -751,6 +750,11 @@ v8::Local QV8QObjectWrapper::newQObject(QObject *object, QDeclarativ { v8::Local rv; + if (!ddata->propertyCache && engine->engine()) { + ddata->propertyCache = QDeclarativeEnginePrivate::get(engine->engine())->cache(object); + if (ddata->propertyCache) ddata->propertyCache->addref(); + } + if (ddata->propertyCache) { rv = ddata->propertyCache->newQObject(object, engine); } else { -- 2.7.4