From ad755020e103b7d3c4f66173c74cf80f6bca3144 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 21 Mar 2024 17:21:19 +0100 Subject: QSignalSpy: de-inline verify() helper functions Now that we're moving the code anyway, also move their declarations into the general private: section of the class. Task-number: QTBUG-123544 Change-Id: I6b1e7006b73b710daa4b511b2fd643293a3d4844 Reviewed-by: David Faure --- src/testlib/qsignalspy.h | 43 +++---------------------------------------- 1 file changed, 3 insertions(+), 40 deletions(-) (limited to 'src/testlib/qsignalspy.h') diff --git a/src/testlib/qsignalspy.h b/src/testlib/qsignalspy.h index 7ae58ba82b..073e5aa8c0 100644 --- a/src/testlib/qsignalspy.h +++ b/src/testlib/qsignalspy.h @@ -27,35 +27,6 @@ class QSignalSpy: public QObject, public QList > public: explicit QSignalSpy(const QObject *obj, const char *aSignal) : QSignalSpy(verify(obj, aSignal)) {} - -private: - static ObjectSignal verify(const QObject *obj, const char *aSignal) - { - if (!isObjectValid(obj)) - return {}; - - if (!aSignal) { - qWarning("QSignalSpy: Null signal name is not valid"); - return {}; - } - - if (((aSignal[0] - '0') & 0x03) != QSIGNAL_CODE) { - qWarning("QSignalSpy: Not a valid signal, use the SIGNAL macro"); - return {}; - } - - const QByteArray ba = QMetaObject::normalizedSignature(aSignal + 1); - const QMetaObject * const mo = obj->metaObject(); - const int sigIndex = mo->indexOfMethod(ba.constData()); - if (sigIndex < 0) { - qWarning("QSignalSpy: No such signal: '%s'", ba.constData()); - return {}; - } - - return verify(obj, mo->method(sigIndex)); - } - -public: #ifdef Q_QDOC template QSignalSpy(const QObject *object, PointerToMemberFunction signal); @@ -64,20 +35,9 @@ public: QSignalSpy(const typename QtPrivate::FunctionPointer::Object *obj, Func signal0) : QSignalSpy(verify(obj, QMetaMethod::fromSignal(signal0))) {} #endif // Q_QDOC - QSignalSpy(const QObject *obj, QMetaMethod signal) : QSignalSpy(verify(obj, signal)) {} -private: - static ObjectSignal verify(const QObject *obj, QMetaMethod signal) - { - if (isObjectValid(obj) && isSignalMetaMethodValid(signal)) - return {obj, signal}; - else - return {}; - } - -public: inline bool isValid() const { return !sig.isEmpty(); } inline QByteArray signal() const { return sig; } @@ -127,6 +87,9 @@ private: } + Q_TESTLIB_EXPORT static ObjectSignal verify(const QObject *obj, QMetaMethod signal); + Q_TESTLIB_EXPORT static ObjectSignal verify(const QObject *obj, const char *aSignal); + Q_TESTLIB_EXPORT bool connectToSignal(const QObject *sender, int sigIndex); Q_TESTLIB_EXPORT static bool isSignalMetaMethodValid(const QMetaMethod &signal); -- cgit v1.2.3