From 9d0dbc32dd3c37c1199115762fab6ac1cedb9ce3 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Tue, 5 Apr 2016 17:01:11 +0200 Subject: [PATCH] Move QThread::currentThreadId() down to the loop using it. This prevents the call from happening in case no C++ signal is connected. Change-Id: I32027df446391f3fc979528738a106223042d632 Reviewed-by: Simon Hausmann Reviewed-by: Olivier Goffart (Woboq GmbH) --- src/corelib/kernel/qobject.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index e3e536d7e19..fc5e6abf00a 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -3628,8 +3628,6 @@ void QMetaObject::activate(QObject *sender, int signalOffset, int local_signal_i argv ? argv : empty_argv); } - Qt::HANDLE currentThreadId = QThread::currentThreadId(); - { QMutexLocker locker(signalSlotLock(sender)); struct ConnectionListsRef { @@ -3668,6 +3666,8 @@ void QMetaObject::activate(QObject *sender, int signalOffset, int local_signal_i else list = &connectionLists->allsignals; + Qt::HANDLE currentThreadId = QThread::currentThreadId(); + do { QObjectPrivate::Connection *c = list->first; if (!c) continue;