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 <thiago.macieira@intel.com>
This commit is contained in:
Mårten Nordheim 2019-02-26 12:57:00 +01:00
parent d15b02ff29
commit 2ec47d6cb5

View File

@ -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);