summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qobject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/kernel/qobject.cpp')
-rw-r--r--src/corelib/kernel/qobject.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
index a12efad25ab..62202178288 100644
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
@@ -3759,6 +3759,14 @@ bool QMetaObjectPrivate::disconnect(const QObject *sender,
QObjectPrivate::ConnectionDataPointer connections(scd);
if (signal_index < 0) {
+ // wildcard disconnect - warn if this disconnects destroyed()
+ if (!receiver && method_index < 0 && sender->d_func()->isSignalConnected(0)) {
+ qWarning("QObject::disconnect: wildcard call disconnects from destroyed signal of"
+ " %s::%s", sender->metaObject()->className(),
+ sender->objectName().isEmpty()
+ ? "unnamed"
+ : sender->objectName().toLocal8Bit().data());
+ }
// remove from all connection lists
for (int sig_index = -1; sig_index < scd->signalVectorCount(); ++sig_index) {
if (disconnectHelper(connections.data(), sig_index, receiver, method_index, slot, senderMutex, disconnectType))