summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/stdmsg/src/msglog.cpp2
-rw-r--r--src/mir_app/src/newplugins.cpp11
2 files changed, 10 insertions, 3 deletions
diff --git a/src/core/stdmsg/src/msglog.cpp b/src/core/stdmsg/src/msglog.cpp
index 13d193be03..7dddbcd10f 100644
--- a/src/core/stdmsg/src/msglog.cpp
+++ b/src/core/stdmsg/src/msglog.cpp
@@ -439,7 +439,7 @@ void LoadMsgLogIcons(void)
void FreeMsgLogIcons(void)
{
for (auto &it : pLogIconBmpBits)
- mir_free(it);
+ replaceStr(it, 0);
}
/////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/mir_app/src/newplugins.cpp b/src/mir_app/src/newplugins.cpp
index 367afde7b0..d9508f7874 100644
--- a/src/mir_app/src/newplugins.cpp
+++ b/src/mir_app/src/newplugins.cpp
@@ -735,8 +735,15 @@ int LoadNewPluginsModule(void)
SetPluginOnWhiteList(p->pluginname, plugin_clist == p);
// now loop thru and load all the other plugins, do this in one pass
- for (int i = 0; i < pluginList.getCount(); i++)
- TryLoadPlugin(pluginList[i], false);
+ for (int i = 0; i < pluginList.getCount(); i++) {
+ auto *p = pluginList[i];
+ if (!TryLoadPlugin(p, false)) {
+ if (!p->bFailed) {
+ Plugin_Uninit(p);
+ i--;
+ }
+ }
+ }
for (auto &it : servicePlugins.rev_iter())
if (!IsPluginOnWhiteList(it->pluginname))