]> cloud.milkyroute.net Git - dolphin.git/commitdiff
fix crashing on launch
authorMartin T. H. Sandsmark <martin.sandsmark@kde.org>
Mon, 4 Jan 2021 18:33:58 +0000 (19:33 +0100)
committerElvis Angelaccio <elvis.angelaccio@kde.org>
Tue, 5 Jan 2021 17:08:17 +0000 (17:08 +0000)
src/views/versioncontrol/versioncontrolobserver.cpp
src/views/versioncontrol/versioncontrolobserver.h

index 709d98e4268e93f3a133cd40e5158c8e5e686bd7..cf5be3c9163355429d04a9870037e4ed2c8c7432 100644 (file)
@@ -112,7 +112,7 @@ QList<QAction*> VersionControlObserver::actions(const KFileItemList& items) cons
         return m_plugin->versionControlActions(items);
     } else {
         QList<QAction*> actions;
-        for (const auto &plugin : qAsConst(m_plugins)) {
+        for (const QPointer<KVersionControlPlugin> &plugin : qAsConst(m_plugins)) {
             actions << plugin->outOfVersionControlActions(items);
         }
         return actions;
@@ -306,14 +306,18 @@ KVersionControlPlugin* VersionControlObserver::searchPlugin(const QUrl& director
     initPlugins();
 
     // Verify whether the current directory is under a version system
-    for (const auto &plugin : qAsConst(m_plugins)) {
+    for (const QPointer<KVersionControlPlugin> &plugin : qAsConst(m_plugins)) {
+        if (!plugin) {
+            continue;
+        }
+
         // first naively check if we are at working copy root
         const QString fileName = directory.path() + '/' + plugin->fileName();
         if (QFile::exists(fileName)) {
             m_localRepoRoot = directory.path();
             return plugin;
         }
-        auto root = plugin->localRepositoryRoot(directory.path());
+        const QString root = plugin->localRepositoryRoot(directory.path());
         if (!root.isEmpty()) {
             m_localRepoRoot = root;
             return plugin;
index d9cc90cc6d603b987b841653e0a83f56e72d7d8b..5f425fe8523628320201f63ed7b2269229352beb 100644 (file)
@@ -146,7 +146,7 @@ private:
 
     bool m_pluginsInitialized;
     KVersionControlPlugin* m_plugin;
-    QList<KVersionControlPlugin*> m_plugins;
+    QList<QPointer<KVersionControlPlugin>> m_plugins;
     UpdateItemStatesThread* m_updateItemStatesThread;
 
     friend class UpdateItemStatesThread;