diff options
Diffstat (limited to 'src/testlib/qsignalspy.h')
-rw-r--r-- | src/testlib/qsignalspy.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/testlib/qsignalspy.h b/src/testlib/qsignalspy.h index af9587b369..cbb3bfbe42 100644 --- a/src/testlib/qsignalspy.h +++ b/src/testlib/qsignalspy.h @@ -12,6 +12,8 @@ #include <QtCore/qvariant.h> #include <QtCore/qmutex.h> +#include <mutex> + QT_BEGIN_NAMESPACE @@ -66,7 +68,12 @@ private: { if (!os.obj) return; - args = makeArgs(os.sig, os.obj); + + auto tmp = makeArgs(os.sig, os.obj); + { + const auto lock = std::scoped_lock(m_mutex); + args = std::move(tmp); + } if (!connectToSignal(os.obj, os.sig.methodIndex())) return; @@ -82,7 +89,7 @@ private: Q_TESTLIB_EXPORT static bool isSignalMetaMethodValid(const QMetaMethod &signal); Q_TESTLIB_EXPORT static bool isObjectValid(const QObject *object); - Q_TESTLIB_EXPORT QList<int> makeArgs(const QMetaMethod &member, const QObject *obj); + Q_TESTLIB_EXPORT static QList<int> makeArgs(const QMetaMethod &member, const QObject *obj); Q_TESTLIB_EXPORT void appendArgs(void **a); // the full, normalized signal name |