diff --git a/src/testlib/qsignalspy.cpp b/src/testlib/qsignalspy.cpp index 9902122cb4d..116ce87c3eb 100644 --- a/src/testlib/qsignalspy.cpp +++ b/src/testlib/qsignalspy.cpp @@ -250,7 +250,8 @@ public: }; QSignalSpy::QSignalSpy(ObjectSignal os) - : args(os.obj ? makeArgs(os.sig, os.obj) : QList{}) + : sig(os.sig.methodSignature()), + args(os.obj ? makeArgs(os.sig, os.obj) : QList{}) { if (!os.obj) return; @@ -266,8 +267,6 @@ QSignalSpy::QSignalSpy(ObjectSignal os) } d_ptr = std::move(i); - - sig = os.sig.methodSignature(); } /*! diff --git a/src/testlib/qsignalspy.h b/src/testlib/qsignalspy.h index a5c960e3835..b8df2a4deb6 100644 --- a/src/testlib/qsignalspy.h +++ b/src/testlib/qsignalspy.h @@ -41,7 +41,7 @@ public: : QSignalSpy(verify(obj, signal)) {} Q_TESTLIB_EXPORT ~QSignalSpy(); - inline bool isValid() const { return !sig.isEmpty(); } + bool isValid() const noexcept { return d_ptr != nullptr; } inline QByteArray signal() const { return sig; } bool wait(int timeout) @@ -58,7 +58,7 @@ private: Q_TESTLIB_EXPORT void appendArgs(void **a); // the full, normalized signal name - QByteArray sig; + const QByteArray sig; // holds the QMetaType types for the argument list of the signal const QList args;