From 2ec47d6cb53066b052c13d088e249a44f8a04c79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= Date: Tue, 26 Feb 2019 12:57:00 +0100 Subject: [PATCH] Fix crash in QTest's signal dumper It Q_ASSERTs that argv is not a nullptr, so it would fail when an unconnected signal with 0 arguments was emitted. Change-Id: I5dd810fbeea5b6b511eff4705efdaa6a55739604 Reviewed-by: Thiago Macieira --- src/corelib/kernel/qobject.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 1382015d76d..63bb386107f 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -3593,6 +3593,10 @@ void doActivate(QObject *sender, int signal_index, void **argv) const QSignalSpyCallbackSet *signal_spy_set = callbacks_enabled ? qt_signal_spy_callback_set.load() : nullptr; + void *empty_argv[] = { nullptr }; + if (!argv) + argv = empty_argv; + if (!sp->isSignalConnected(signal_index, false)) { // The possible declarative connection is done, and nothing else is connected if (callbacks_enabled && signal_spy_set->signal_begin_callback != nullptr) @@ -3604,10 +3608,6 @@ void doActivate(QObject *sender, int signal_index, void **argv) return; } - void *empty_argv[] = { nullptr }; - if (!argv) - argv = empty_argv; - if (callbacks_enabled && signal_spy_set->signal_begin_callback != nullptr) signal_spy_set->signal_begin_callback(sender, signal_index, argv); Q_TRACE(QMetaObject_activate_begin_signal, sender, signal_index);