From 1fade11be244bd1096091c3fd58346864dabff24 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Tue, 19 Jul 2022 18:04:01 +0200 Subject: [PATCH] PluginManager: Avoid using sender() Change-Id: I30df454a9bab9896ec39a03d7d261fc47fbd7b7e Reviewed-by: Eike Ziller Reviewed-by: --- src/libs/extensionsystem/pluginmanager.cpp | 19 +++++-------------- src/libs/extensionsystem/pluginmanager_p.h | 1 - 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/src/libs/extensionsystem/pluginmanager.cpp b/src/libs/extensionsystem/pluginmanager.cpp index 16180a9358f..8fe9c0101a0 100644 --- a/src/libs/extensionsystem/pluginmanager.cpp +++ b/src/libs/extensionsystem/pluginmanager.cpp @@ -1411,18 +1411,6 @@ void PluginManagerPrivate::shutdown() } } -/*! - \internal -*/ -void PluginManagerPrivate::asyncShutdownFinished() -{ - auto *plugin = qobject_cast(sender()); - Q_ASSERT(plugin); - asynchronousPlugins.remove(plugin->pluginSpec()); - if (asynchronousPlugins.isEmpty()) - shutdownEventLoop->exit(); -} - /*! \internal */ @@ -1645,8 +1633,11 @@ void PluginManagerPrivate::loadPlugin(PluginSpec *spec, PluginSpec::State destSt profilingReport(">stop", spec); if (spec->d->stop() == IPlugin::AsynchronousShutdown) { asynchronousPlugins << spec; - connect(spec->plugin(), &IPlugin::asynchronousShutdownFinished, - this, &PluginManagerPrivate::asyncShutdownFinished); + connect(spec->plugin(), &IPlugin::asynchronousShutdownFinished, this, [this, spec] { + asynchronousPlugins.remove(spec); + if (asynchronousPlugins.isEmpty()) + shutdownEventLoop->exit(); + }); } profilingReport("