summaryrefslogtreecommitdiffstats
path: root/src/remoteobjects/qremoteobjectsource.cpp
diff options
context:
space:
mode:
authorBrett Stottlemyer <bstottle@ford.com>2021-08-16 13:23:47 -0400
committerBrett Stottlemyer <bstottle@ford.com>2021-08-17 21:04:59 -0400
commit852bf3649876e03c156ae5dc9688833a98ab3d65 (patch)
treeef68f226fd7aaf1116130f27e3acf73b7b5f380a /src/remoteobjects/qremoteobjectsource.cpp
parent4bf86077a1377bf6babfd362a3e8e546153d8973 (diff)
Handle enums/flags as hash/map keys
This extends the previous commit to allow enums in hash/map containers. Pick-to: 6.2 Change-Id: Iaea9f9ddcbf2e01a611e20800305ebbf236eeada Reviewed-by: Michael Brasser <michael.brasser@live.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'src/remoteobjects/qremoteobjectsource.cpp')
-rw-r--r--src/remoteobjects/qremoteobjectsource.cpp10
1 files changed, 2 insertions, 8 deletions
diff --git a/src/remoteobjects/qremoteobjectsource.cpp b/src/remoteobjects/qremoteobjectsource.cpp
index e95585f..ccff0e1 100644
--- a/src/remoteobjects/qremoteobjectsource.cpp
+++ b/src/remoteobjects/qremoteobjectsource.cpp
@@ -100,15 +100,9 @@ inline bool apiMethodMatch(const QMetaObject *m, const Data &data, const QByteAr
return false;
if (apiStringData(m, data.name()) != name)
return false;
- int paramsIndex = data.parameters() + 1;
for (int i = 0; i < argc; ++i) {
- uint typeInfo = m->d.data[paramsIndex + i];
- if (typeInfo & 0x80000000) { // Custom/named type, compare names
- const char *t = QMetaType(types[i]).name();
- const auto type = QByteArray::fromRawData(t, qstrlen(t));
- if (type != apiStringData(m, typeInfo & 0x7FFFFFFF))
- return false;
- } else if (types[i] != int(typeInfo))
+ auto mt = QMetaType(m->d.metaTypes[data.metaTypeOffset() + i + 1]);
+ if (mt != QMetaType(types[i]))
return false;
}
return true;