From 47af56343a12bad0d3696e139af9a23ee1f67933 Mon Sep 17 00:00:00 2001 From: Anton Kudryavtsev Date: Wed, 12 Oct 2016 13:31:39 +0300 Subject: QQmlPropertyCache: add property() overload with QStringRef arg Now we can pass 'name' arg as QStringRef. Client code can reduce allocations. Change-Id: I444f7135f4912f54d57e0a1193f330a3976fc186 Reviewed-by: Erik Verbruggen --- src/qml/qml/qqmlpropertycache.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'src/qml/qml/qqmlpropertycache.cpp') diff --git a/src/qml/qml/qqmlpropertycache.cpp b/src/qml/qml/qqmlpropertycache.cpp index bf220a905c..b645d47c39 100644 --- a/src/qml/qml/qqmlpropertycache.cpp +++ b/src/qml/qml/qqmlpropertycache.cpp @@ -978,7 +978,7 @@ int QQmlPropertyCache::originalClone(QObject *object, int index) return index; } -QQmlPropertyData qQmlPropertyCacheCreate(const QMetaObject *metaObject, const QString &property) +static QQmlPropertyData qQmlPropertyCacheCreate(const QMetaObject *metaObject, const QStringRef &property) { Q_ASSERT(metaObject); @@ -1038,12 +1038,17 @@ QQmlPropertyData qQmlPropertyCacheCreate(const QMetaObject *metaObject, const QS return rv; } -inline const QString &qQmlPropertyCacheToString(const QString &string) +static inline QQmlPropertyData qQmlPropertyCacheCreate(const QMetaObject *metaObject, const QString &property) +{ + return qQmlPropertyCacheCreate(metaObject, QStringRef(&property)); +} + +static inline const QStringRef &qQmlPropertyCacheToString(const QStringRef &string) { return string; } -inline QString qQmlPropertyCacheToString(const QV4::String *string) +static inline QString qQmlPropertyCacheToString(const QV4::String *string) { return string->toQString(); } @@ -1090,10 +1095,10 @@ QQmlPropertyCache::property(QJSEngine *engine, QObject *obj, const QV4::String * } QQmlPropertyData * -QQmlPropertyCache::property(QJSEngine *engine, QObject *obj, - const QString &name, QQmlContextData *context, QQmlPropertyData &local) +QQmlPropertyCache::property(QJSEngine *engine, QObject *obj, const QStringRef &name, + QQmlContextData *context, QQmlPropertyData &local) { - return qQmlPropertyCacheProperty(engine, obj, name, context, local); + return qQmlPropertyCacheProperty(engine, obj, name, context, local); } // these two functions are copied from qmetaobject.cpp -- cgit v1.2.3