summaryrefslogtreecommitdiffstats
path: root/src/dbus/qdbusabstractadaptor.cpp
diff options
context:
space:
mode:
authorSergio Ahumada <sergio.ahumada@digia.com>2013-07-12 14:03:21 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-07-12 14:03:21 +0200
commit1866c13b7dd48aa0c6ede1cf7907a2640e9399f8 (patch)
tree0b61c2d801525228f4c5795795d1cdeb57b3edfa /src/dbus/qdbusabstractadaptor.cpp
parent5b648d4d79d07a7c851ce6211ffff8375d41bfa2 (diff)
parent3ef6cf060e984bca43956a23b61b32ec7347cfc7 (diff)
Merge "Merge branch 'stable' into dev" into refs/staging/dev
Diffstat (limited to 'src/dbus/qdbusabstractadaptor.cpp')
-rw-r--r--src/dbus/qdbusabstractadaptor.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/dbus/qdbusabstractadaptor.cpp b/src/dbus/qdbusabstractadaptor.cpp
index 1dbc79d6ec..04accee037 100644
--- a/src/dbus/qdbusabstractadaptor.cpp
+++ b/src/dbus/qdbusabstractadaptor.cpp
@@ -279,7 +279,16 @@ void QDBusAdaptorConnector::polish()
void QDBusAdaptorConnector::relaySlot(void **argv)
{
- relay(sender(), senderSignalIndex(), argv);
+ QObject *sndr = sender();
+ if (Q_LIKELY(sndr)) {
+ relay(sndr, senderSignalIndex(), argv);
+ } else {
+ qWarning("QtDBus: cannot relay signals from parent %s(%p \"%s\") unless they are emitted in the object's thread %s(%p \"%s\"). "
+ "Current thread is %s(%p \"%s\").",
+ parent()->metaObject()->className(), parent(), qPrintable(parent()->objectName()),
+ parent()->thread()->metaObject()->className(), parent()->thread(), qPrintable(parent()->thread()->objectName()),
+ QThread::currentThread()->metaObject()->className(), QThread::currentThread(), qPrintable(QThread::currentThread()->objectName()));
+ }
}
void QDBusAdaptorConnector::relay(QObject *senderObj, int lastSignalIdx, void **argv)