OSDN Git Service

remove redundant QSignalSpyCallbackSet::signal_end_callback
authorIvailo Monev <xakepa10@gmail.com>
Fri, 14 Aug 2020 23:14:59 +0000 (02:14 +0300)
committerIvailo Monev <xakepa10@gmail.com>
Fri, 14 Aug 2020 23:14:59 +0000 (02:14 +0300)
QSignalSpyCallbackSet::signal_begin_callback is called once for each signal
thus QTest::iLevel is always one

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
src/core/kernel/qobject.cpp
src/core/kernel/qobject_p.h
src/test/qsignaldumper.cpp

index a76a4ee..15d05f7 100644 (file)
@@ -58,7 +58,7 @@
 QT_BEGIN_NAMESPACE
 
 // Support for introspection
-QSignalSpyCallbackSet Q_CORE_EXPORT qt_signal_spy_callback_set = { 0, 0, 0 };
+QSignalSpyCallbackSet Q_CORE_EXPORT qt_signal_spy_callback_set = { 0, 0 };
 
 void qt_register_signal_spy_callbacks(const QSignalSpyCallbackSet &callback_set)
 {
@@ -2917,9 +2917,6 @@ void QMetaObject::activate(QObject *sender, const QMetaObject *m, int local_sign
     QMutexLocker locker(signalSlotLock(sender));
     QObjectConnectionListVector *connectionLists = sender->d_func()->connectionLists;
     if (!connectionLists) {
-        locker.unlock();
-        if (qt_signal_spy_callback_set.signal_end_callback)
-            qt_signal_spy_callback_set.signal_end_callback(sender, signal_absolute_index);
         return;
     }
     ++connectionLists->inUse;
@@ -3050,12 +3047,6 @@ void QMetaObject::activate(QObject *sender, const QMetaObject *m, int local_sign
     } else if (connectionLists->dirty) {
         sender->d_func()->cleanConnectionLists();
     }
-
-    locker.unlock();
-
-    if (qt_signal_spy_callback_set.signal_end_callback)
-        qt_signal_spy_callback_set.signal_end_callback(sender, signal_absolute_index);
-
 }
 
 /*! \internal
index 6254575..87f147c 100644 (file)
@@ -63,10 +63,8 @@ namespace QtSharedPointer { struct ExternalRefCountData; }
 struct QSignalSpyCallbackSet
 {
     typedef void (*BeginCallback)(QObject *caller, int method_index, void **argv);
-    typedef void (*EndCallback)(QObject *caller, int method_index);
-    BeginCallback signal_begin_callback,
-                    slot_begin_callback;
-    EndCallback signal_end_callback;
+    BeginCallback signal_begin_callback;
+    BeginCallback slot_begin_callback;
 };
 void Q_CORE_EXPORT qt_register_signal_spy_callbacks(const QSignalSpyCallbackSet &callback_set);
 
@@ -200,8 +198,7 @@ inline bool QObjectPrivate::isSignalConnected(uint signal_index) const
 {
     return signal_index >= sizeof(connectedSignals) * 8
         || (connectedSignals[signal_index >> 5] & (1 << (signal_index & 0x1f))
-        || qt_signal_spy_callback_set.signal_begin_callback
-        || qt_signal_spy_callback_set.signal_end_callback);
+        || qt_signal_spy_callback_set.signal_begin_callback);
 }
 
 inline void QObjectPrivate::connectNotify(const char *signal)
index 4d9b707..214a87d 100644 (file)
@@ -52,7 +52,6 @@ inline static void qPrintMessage(const QByteArray &ba)
     QTestLog::info(ba.constData(), 0, 0);
 }
 
-static int iLevel = 0;
 enum { IndentSpacesCount = 4 };
 
 static QByteArray memberName(const QMetaMethod &member)
@@ -70,7 +69,7 @@ static void qSignalDumperCallback(QObject *caller, int method_index, void **argv
     Q_ASSERT(member.signature());
 
     QByteArray str;
-    str.fill(' ', QTest::iLevel++ * QTest::IndentSpacesCount);
+    str.fill(' ', QTest::IndentSpacesCount);
     str += "Signal: ";
     str += mo->className();
     str += '(';
@@ -122,7 +121,7 @@ static void qSignalDumperCallbackSlot(QObject *caller, int method_index, void **
         return;
 
     QByteArray str;
-    str.fill(' ', QTest::iLevel * QTest::IndentSpacesCount);
+    str.fill(' ', QTest::IndentSpacesCount);
     str += "Slot: ";
     str += mo->className();
     str += '(';
@@ -138,28 +137,20 @@ static void qSignalDumperCallbackSlot(QObject *caller, int method_index, void **
     qPrintMessage(str);
 }
 
-static void qSignalDumperCallbackEndSignal(QObject *caller, int /*method_index*/)
-{
-    Q_ASSERT(caller); Q_ASSERT(caller->metaObject());
-    --QTest::iLevel;
-    Q_ASSERT(QTest::iLevel >= 0);
-}
-
 }
 
 void QSignalDumper::startDump()
 {
     static QSignalSpyCallbackSet set = {
         QTest::qSignalDumperCallback,
-        QTest::qSignalDumperCallbackSlot,
-        QTest::qSignalDumperCallbackEndSignal
+        QTest::qSignalDumperCallbackSlot
     };
     qt_register_signal_spy_callbacks(set);
 }
 
 void QSignalDumper::endDump()
 {
-    static QSignalSpyCallbackSet nset = { 0, 0, 0 };
+    static QSignalSpyCallbackSet nset = { 0, 0 };
     qt_register_signal_spy_callbacks(nset);
 }