aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlpropertycache.cpp
diff options
context:
space:
mode:
authorKent Hansen <kent.hansen@nokia.com>2012-05-23 23:04:52 +0200
committerQt by Nokia <qt-info@nokia.com>2012-05-24 14:26:25 +0200
commit98105aac87a4cab12118cfbda77f0907c6d8f86c (patch)
tree251ff0347580b1a5118512d381e5177bb25e3ae5 /src/qml/qml/qqmlpropertycache.cpp
parentd2e557c2c2d7fcf3bf7c1676df3902e115986dc2 (diff)
Simplify method name extraction in property cache
All of Qt is now generating r7 meta-objects, so the compat support can be removed. Change-Id: Ib8e697b86a0ae8a68209fe661a8043505838f631 Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Diffstat (limited to 'src/qml/qml/qqmlpropertycache.cpp')
-rw-r--r--src/qml/qml/qqmlpropertycache.cpp24
1 files changed, 9 insertions, 15 deletions
diff --git a/src/qml/qml/qqmlpropertycache.cpp b/src/qml/qml/qqmlpropertycache.cpp
index 86c0d715af..8167280142 100644
--- a/src/qml/qml/qqmlpropertycache.cpp
+++ b/src/qml/qml/qqmlpropertycache.cpp
@@ -658,18 +658,12 @@ void QQmlPropertyCache::append(QQmlEngine *engine, const QMetaObject *metaObject
continue;
// Extract method name
- const char *signature;
- if (QMetaObjectPrivate::get(metaObject)->revision >= 7) {
- // Safe to use the raw name pointer
- signature = m.name().constData();
- } else {
- // Safe to use the raw signature pointer
- signature = m.methodSignature().constData();
- }
- const char *cptr = signature;
+ // It's safe to keep the raw name pointer
+ Q_ASSERT(QMetaObjectPrivate::get(metaObject)->revision >= 7);
+ const char *rawName = m.name().constData();
+ const char *cptr = rawName;
char utf8 = 0;
- while (*cptr && *cptr != '(') {
- Q_ASSERT(*cptr != 0);
+ while (*cptr) {
utf8 |= *cptr & 0x80;
++cptr;
}
@@ -699,7 +693,7 @@ void QQmlPropertyCache::append(QQmlEngine *engine, const QMetaObject *metaObject
QQmlPropertyData *old = 0;
if (utf8) {
- QHashedString methodName(QString::fromUtf8(signature, cptr - signature));
+ QHashedString methodName(QString::fromUtf8(rawName, cptr - rawName));
if (QQmlPropertyData **it = stringCache.value(methodName))
old = *it;
stringCache.insert(methodName, data);
@@ -710,7 +704,7 @@ void QQmlPropertyCache::append(QQmlEngine *engine, const QMetaObject *metaObject
++signalHandlerIndex;
}
} else {
- QHashedCStringRef methodName(signature, cptr - signature);
+ QHashedCStringRef methodName(rawName, cptr - rawName);
if (QQmlPropertyData **it = stringCache.value(methodName))
old = *it;
stringCache.insert(methodName, data);
@@ -721,9 +715,9 @@ void QQmlPropertyCache::append(QQmlEngine *engine, const QMetaObject *metaObject
QVarLengthArray<char, 128> str(length+3);
str[0] = 'o';
str[1] = 'n';
- str[2] = toupper(signature[0]);
+ str[2] = toupper(rawName[0]);
if (length > 1)
- memcpy(&str[3], &signature[1], length - 1);
+ memcpy(&str[3], &rawName[1], length - 1);
str[length + 2] = '\0';
QHashedString on(QString::fromLatin1(str.data()));