summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2019-02-12 12:45:50 +0100
committerUlf Hermann <ulf.hermann@qt.io>2019-02-22 11:36:18 +0000
commit46589056c399191e1afe0b2ddb1e2f0570fa8ddc (patch)
treed3e0eda14f61046fa76a2dc40ebb91226fc6a4fb
parent783953f09dcfe9c58dc991394535ba07dabe2560 (diff)
QObject: count declarative receivers also if there are no C++ ones
Change-Id: If998cdd5eeb8a3ae85cd540cc9c1fd0c051e1d4b Fixes: QTBUG-73753 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
-rw-r--r--src/corelib/kernel/qobject.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
index 257575e141..7b9689f1cf 100644
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
@@ -2404,8 +2404,7 @@ int QObject::receivers(const char *signal) const
{
Q_D(const QObject);
int receivers = 0;
- QObjectPrivate::ConnectionData *cd = d->connections.load();
- if (signal && cd) {
+ if (signal) {
QByteArray signal_name = QMetaObject::normalizedSignature(signal);
signal = signal_name;
#ifndef QT_NO_DEBUG
@@ -2429,8 +2428,9 @@ int QObject::receivers(const char *signal) const
signal_index);
}
+ QObjectPrivate::ConnectionData *cd = d->connections.load();
QBasicMutexLocker locker(signalSlotLock(this));
- if (signal_index < cd->signalVector.count()) {
+ if (cd && signal_index < cd->signalVector.count()) {
const QObjectPrivate::Connection *c =
cd->signalVector.at(signal_index).first;
while (c) {