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.cpp37
1 files changed, 19 insertions, 18 deletions
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
index 560a8c7d789..f5e2e7d80e6 100644
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
@@ -2715,6 +2715,20 @@ static void err_info_about_objects(const char *func, const QObject *sender, cons
qCWarning(lcConnect, "QObject::%s: (receiver name: '%s')", func, b.toLocal8Bit().data());
}
+Q_DECL_COLD_FUNCTION
+static void connectWarning(const QObject *sender,
+ const QMetaObject *senderMetaObject,
+ const QObject *receiver,
+ const char *message)
+{
+ const char *senderString = sender ? sender->metaObject()->className()
+ : senderMetaObject ? senderMetaObject->className()
+ : "Unknown";
+ const char *receiverString = receiver ? receiver->metaObject()->className()
+ : "Unknown";
+ qCWarning(lcConnect, "QObject::connect(%s, %s): %s", senderString, receiverString, message);
+}
+
/*!
Returns a pointer to the object that sent the signal, if called in
a slot activated by a signal; otherwise it returns \nullptr. The pointer
@@ -4105,8 +4119,9 @@ QMetaObject::Connection QMetaObject::connectImpl(const QObject *sender, const QM
{
QtPrivate::SlotObjUniquePtr slotObj(slotObjRaw);
+ const QMetaObject *senderMetaObject = sender->metaObject();
if (!signal.isValid() || signal.methodType() != QMetaMethod::Signal) {
- qCWarning(lcConnect, "QObject::connect: invalid signal parameter");
+ connectWarning(sender, senderMetaObject, receiver, "invalid signal parameter");
return QMetaObject::Connection();
}
@@ -4116,7 +4131,6 @@ QMetaObject::Connection QMetaObject::connectImpl(const QObject *sender, const QM
QMetaObjectPrivate::memberIndexes(sender, signal, &signal_index, &dummy);
}
- const QMetaObject *senderMetaObject = sender->metaObject();
if (signal_index == -1) {
qCWarning(lcConnect, "QObject::connect: Can't find signal %s on instance of class %s",
signal.methodSignature().constData(), senderMetaObject->className());
@@ -5433,7 +5447,7 @@ QMetaObject::Connection QObject::connectImpl(const QObject *sender, void **signa
{
QtPrivate::SlotObjUniquePtr slotObj(slotObjRaw);
if (!signal) {
- qCWarning(lcConnect, "QObject::connect: invalid nullptr parameter");
+ connectWarning(sender, senderMetaObject, receiver, "invalid nullptr parameter");
return QMetaObject::Connection();
}
@@ -5445,26 +5459,13 @@ QMetaObject::Connection QObject::connectImpl(const QObject *sender, void **signa
break;
}
if (!senderMetaObject) {
- qCWarning(lcConnect, "QObject::connect: signal not found in %s", sender->metaObject()->className());
+ connectWarning(sender, senderMetaObject, receiver, "signal not found");
return QMetaObject::Connection(nullptr);
}
signal_index += QMetaObjectPrivate::signalOffset(senderMetaObject);
return QObjectPrivate::connectImpl(sender, signal_index, receiver, slot, slotObj.release(), type, types, senderMetaObject);
}
-static void connectWarning(const QObject *sender,
- const QMetaObject *senderMetaObject,
- const QObject *receiver,
- const char *message)
-{
- const char *senderString = sender ? sender->metaObject()->className()
- : senderMetaObject ? senderMetaObject->className()
- : "Unknown";
- const char *receiverString = receiver ? receiver->metaObject()->className()
- : "Unknown";
- qCWarning(lcConnect, "QObject::connect(%s, %s): %s", senderString, receiverString, message);
-}
-
/*!
\internal
@@ -5683,7 +5684,7 @@ QMetaObject::Connection QObjectPrivate::connect(const QObject *sender, int signa
{
QtPrivate::SlotObjUniquePtr slotObj(slotObjRaw);
if (!sender) {
- qCWarning(lcConnect, "QObject::connect: invalid nullptr parameter");
+ connectWarning(sender, nullptr, receiver, "invalid nullptr parameter");
return QMetaObject::Connection();
}
const QMetaObject *senderMetaObject = sender->metaObject();