KPluginLoader::instantiatePlugins() wraps QPluginLoader::instace(),
which doesn't return a new object for each call, so if we set the
KFileItemModelRolesUpdater instance as parent to the plugin the shared
instance will be deleted leading to crashes when other instances of
KFileItemModelRolesUpdater tries to use their plugin objects.
To fix this, set the QApplication as a parent.
BUG: 357479
REVIEW: 127930
connect(m_directoryContentsCounter, &KDirectoryContentsCounter::result,
this, &KFileItemModelRolesUpdater::slotDirectoryContentsCountReceived);
- auto plugins = KPluginLoader::instantiatePlugins(QStringLiteral("kf5/overlayicon"), nullptr, this);
+ auto plugins = KPluginLoader::instantiatePlugins(QStringLiteral("kf5/overlayicon"), nullptr, qApp);
foreach (QObject *it, plugins) {
auto plugin = qobject_cast<KOverlayIconPlugin*>(it);
if (plugin) {