diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2011-06-10 10:29:05 +1000 |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2011-06-10 10:29:05 +1000 |
commit | df4add062fc7368d9fee7c697405c43422b0af27 (patch) | |
tree | ed6fb7ed82d7511d0c85cea86ddaafcaae0c91f8 | |
parent | 250763ffb5cef2173b80b0e67266c937850ff516 (diff) |
Use optimized QObject wrapper whenever it is possible
-rw-r--r-- | src/declarative/qml/v8/qv8qobjectwrapper.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/declarative/qml/v8/qv8qobjectwrapper.cpp b/src/declarative/qml/v8/qv8qobjectwrapper.cpp index 02eb346137..d1bf0e399c 100644 --- a/src/declarative/qml/v8/qv8qobjectwrapper.cpp +++ b/src/declarative/qml/v8/qv8qobjectwrapper.cpp @@ -687,7 +687,6 @@ v8::Local<v8::Object> 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<v8::Object> QV8QObjectWrapper::newQObject(QObject *object, QDeclarativ { v8::Local<v8::Object> 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 { |