From b260ae7c9de236b320dee28d854caeccd1ff395c Mon Sep 17 00:00:00 2001
From: Dominik Haumann <dhaumann@kde.org>
Date: Sun, 10 Apr 2016 00:00:00 +0200
Subject: [PATCH] fix crash when loading plugins that are not properly
installed (bug #361517)
REVIEW: 127620
BUG: 361517
---
kate/katepluginmanager.cpp | 8 ++++++--
kate/katepluginmanager.h | 5 +++++
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/kate/katepluginmanager.cpp b/kate/katepluginmanager.cpp
index 22ed1df..9fd3d7b 100644
--- a/kate/katepluginmanager.cpp
+++ b/kate/katepluginmanager.cpp
@@ -181,8 +181,12 @@ void KatePluginManager::loadPlugin(KatePluginInfo *item)
/**
* try to load the plugin
*/
- item->load = (item->plugin = KPluginLoader(item->metaData.fileName()).factory()->create<KTextEditor::Plugin>(this, QVariantList() << item->saveName()));
-
+ auto factory = KPluginLoader(item->metaData.fileName()).factory();
+ if (factory) {
+ item->plugin = factory->create<KTextEditor::Plugin>(this, QVariantList() << item->saveName());
+ item->load = item->plugin != nullptr;
+ }
+
/**
* tell the world about the success
*/
diff --git a/kate/katepluginmanager.h b/kate/katepluginmanager.h
index ae954d0..942e386 100644
--- a/kate/katepluginmanager.h
+++ b/kate/katepluginmanager.h
@@ -37,6 +37,11 @@ class KateMainWindow;
class KatePluginInfo
{
public:
+ KatePluginInfo()
+ : load(false)
+ , defaultLoad(false)
+ , plugin(nullptr)
+ {}
bool load;
bool defaultLoad;
KPluginMetaData metaData;
--
2.7.3