diff options
author | Marc Mutz <marc.mutz@qt.io> | 2024-03-21 17:47:58 +0100 |
---|---|---|
committer | Marc Mutz <marc.mutz@qt.io> | 2024-04-24 22:32:15 +0200 |
commit | d6c7b0c2bcb15acb815d02a170d5ff7c57470dc1 (patch) | |
tree | 9551ada75a462c6afa234f0e50596d93a3b0d227 /src | |
parent | ef2b55ee65a971e02c953aff018a74137ba80492 (diff) |
QSignalSpy: make initArgs() return the result
... instead of working directly on the member variable.
This is in preparation of making said member variable const, so it
need no longer be protected by the mutex.
Task-number: QTBUG-123544
Change-Id: Ifc407502ec2c5c52dc3b42edea18be7fc672a968
Reviewed-by: David Faure <david.faure@kdab.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/testlib/qsignalspy.cpp | 8 | ||||
-rw-r--r-- | src/testlib/qsignalspy.h | 4 |
2 files changed, 7 insertions, 5 deletions
diff --git a/src/testlib/qsignalspy.cpp b/src/testlib/qsignalspy.cpp index a4c0291481..05b9868e34 100644 --- a/src/testlib/qsignalspy.cpp +++ b/src/testlib/qsignalspy.cpp @@ -220,10 +220,11 @@ QSignalSpy::ObjectSignal QSignalSpy::verify(const QObject *obj, QMetaMethod sign return {}; } -void QSignalSpy::initArgs(const QMetaMethod &member, const QObject *obj) +QList<int> QSignalSpy::makeArgs(const QMetaMethod &member, const QObject *obj) { + QList<int> result; QMutexLocker locker(&m_mutex); - args.reserve(member.parameterCount()); + result.reserve(member.parameterCount()); for (int i = 0; i < member.parameterCount(); ++i) { QMetaType tp = member.parameterMetaType(i); if (!tp.isValid() && obj) { @@ -241,8 +242,9 @@ void QSignalSpy::initArgs(const QMetaMethod &member, const QObject *obj) member.parameterTypes().at(i).constData(), member.name().constData()); } - args << tp.id(); + result.append(tp.id()); } + return result; } bool QSignalSpy::connectToSignal(const QObject *sender, int sigIndex) diff --git a/src/testlib/qsignalspy.h b/src/testlib/qsignalspy.h index b15831768b..af9587b369 100644 --- a/src/testlib/qsignalspy.h +++ b/src/testlib/qsignalspy.h @@ -66,7 +66,7 @@ private: { if (!os.obj) return; - initArgs(os.sig, os.obj); + args = makeArgs(os.sig, os.obj); if (!connectToSignal(os.obj, os.sig.methodIndex())) return; @@ -82,7 +82,7 @@ private: Q_TESTLIB_EXPORT static bool isSignalMetaMethodValid(const QMetaMethod &signal); Q_TESTLIB_EXPORT static bool isObjectValid(const QObject *object); - Q_TESTLIB_EXPORT void initArgs(const QMetaMethod &member, const QObject *obj); + Q_TESTLIB_EXPORT QList<int> makeArgs(const QMetaMethod &member, const QObject *obj); Q_TESTLIB_EXPORT void appendArgs(void **a); // the full, normalized signal name |