diff options
author | Mårten Nordheim <marten.nordheim@qt.io> | 2019-09-18 10:46:58 +0200 |
---|---|---|
committer | Mårten Nordheim <marten.nordheim@qt.io> | 2019-09-23 08:27:18 +0000 |
commit | 895a786827a0056398c07e3b668f35bd5952849e (patch) | |
tree | e1146c25d4edbef856ac6fadb658a9d6fc103f44 /src/corelib/kernel/qobject.cpp | |
parent | 4f757e0757263dd0fd0057f32903bbe95afe89ad (diff) |
Fix crash when using signaldumper and sender is deleted
Testlib's signaldumper functionality would crash inside
testlib as it dereferenced the sender after it was deleted.
Change-Id: I6013b75b0a121e2768429d8a3cf0339a940314f2
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/corelib/kernel/qobject.cpp')
-rw-r--r-- | src/corelib/kernel/qobject.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 0b396343af..cf107498dd 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -3908,11 +3908,12 @@ void doActivate(QObject *sender, int signal_index, void **argv) if (connections->currentConnectionId.loadRelaxed() == 0) senderDeleted = true; } - if (!senderDeleted) + if (!senderDeleted) { sp->connections.loadRelaxed()->cleanOrphanedConnections(sender); - if (callbacks_enabled && signal_spy_set->signal_end_callback != nullptr) - signal_spy_set->signal_end_callback(sender, signal_index); + if (callbacks_enabled && signal_spy_set->signal_end_callback != nullptr) + signal_spy_set->signal_end_callback(sender, signal_index); + } } /*! |