From 8eefba828fef6908ef67d610e9fbbb4abb28d3ba Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Sun, 19 Jul 2015 22:04:28 +0900 Subject: Added safety harness for currentThreadObject() usage. currentThreadObject() returns a null pointer if the current thread was not started using the QThread API. This relates to bug 1748. (cherry picked from commit dad70b4c5201ece044ecb663bb91b48ba8bd84a3) Signed-off-by: Michele Calgaro --- src/kernel/qeventloop_unix_glib.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/kernel/qeventloop_unix_glib.cpp') diff --git a/src/kernel/qeventloop_unix_glib.cpp b/src/kernel/qeventloop_unix_glib.cpp index feff675..c41acce 100644 --- a/src/kernel/qeventloop_unix_glib.cpp +++ b/src/kernel/qeventloop_unix_glib.cpp @@ -688,7 +688,9 @@ int QEventLoop::activateTimers() QTimerEvent e( t->id ); #if defined(QT_THREAD_SUPPORT) // Be careful...the current thread may not be the target object's thread! - if ((!t->obj) || (QThread::currentThreadObject()->threadPostedEventsDisabled()) || (t->obj && (t->obj->contextThreadObject() == QThread::currentThreadObject()))) { + if ((!t->obj) || + (QThread::currentThreadObject() && QThread::currentThreadObject()->threadPostedEventsDisabled()) || + (t->obj && t->obj->contextThreadObject() == QThread::currentThreadObject())) { QApplication::sendEvent( t->obj, &e ); // send event } else { @@ -731,7 +733,9 @@ int QEventLoop::activateSocketNotifiers() sn->pending = FALSE; #if defined(QT_THREAD_SUPPORT) // Be careful...the current thread may not be the target object's thread! - if ((!sn->obj) || (QThread::currentThreadObject()->threadPostedEventsDisabled()) || (sn->obj && (sn->obj->contextThreadObject() == QThread::currentThreadObject()))) { + if ((!sn->obj) || + (QThread::currentThreadObject() && QThread::currentThreadObject()->threadPostedEventsDisabled()) || + (sn->obj && sn->obj->contextThreadObject() == QThread::currentThreadObject())) { QApplication::sendEvent( sn->obj, &event ); // send event } else { -- cgit v1.2.1