From: Aaron Kennedy Date: Fri, 10 Jun 2011 00:29:05 +0000 (+1000) Subject: Use optimized QObject wrapper whenever it is possible X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=df4add062fc7368d9fee7c697405c43422b0af27;p=konrad%2Fqtdeclarative.git Use optimized QObject wrapper whenever it is possible --- 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 {