diff options
| author | Brett Stottlemyer <bstottle@ford.com> | 2021-08-16 13:23:47 -0400 |
|---|---|---|
| committer | Brett Stottlemyer <bstottle@ford.com> | 2021-08-17 21:04:59 -0400 |
| commit | 852bf3649876e03c156ae5dc9688833a98ab3d65 (patch) | |
| tree | ef68f226fd7aaf1116130f27e3acf73b7b5f380a /src/remoteobjects/qremoteobjectsource.cpp | |
| parent | 4bf86077a1377bf6babfd362a3e8e546153d8973 (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.cpp | 10 |
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; |
