Code: Select all
diff --git i/far-svcmgr/include/globalinfo.hpp w/far-svcmgr/include/globalinfo.hpp
index c6f5d6e..6fe0518 100644
--- i/far-svcmgr/include/globalinfo.hpp
+++ w/far-svcmgr/include/globalinfo.hpp
@@ -60,8 +60,6 @@ private:
FarGlobalInfo();
void save_settings() const;
-
- Far::Settings_t * m_settings;
};
diff --git i/far-svcmgr/src/globalinfo.cpp w/far-svcmgr/src/globalinfo.cpp
index e0e5ff1..18d1a20 100644
--- i/far-svcmgr/src/globalinfo.cpp
+++ w/far-svcmgr/src/globalinfo.cpp
@@ -39,8 +39,7 @@ FarGlobalInfo & FarGlobalInfo::inst() {
return ret;
}
-FarGlobalInfo::FarGlobalInfo():
- m_settings(nullptr)
+FarGlobalInfo::FarGlobalInfo()
{
LogTrace();
addToPluginsMenu = 1;
@@ -51,7 +50,6 @@ FarGlobalInfo::FarGlobalInfo():
}
FarGlobalInfo::~FarGlobalInfo() {
- delete m_settings;
}
PCWSTR FarGlobalInfo::get_author() const {
@@ -98,13 +96,14 @@ Far::Plugin_i * FarGlobalInfo::CreatePlugin(const PluginStartupInfo * Info) {
}
void FarGlobalInfo::load_settings() {
- if (!m_settings)
- m_settings = new Far::Settings_t(*get_guid());
- addToPluginsMenu = m_settings->get(L"AddToPluginsMenu", addToPluginsMenu);
- addToDisksMenu = m_settings->get(L"AddToDisksMenu", addToDisksMenu);
- waitForState = m_settings->get(L"waitForState", waitForState);
- waitTimeout = m_settings->get(L"waitTimeout", waitTimeout);
- Base::copy_str(Prefix, m_settings->get(L"Prefix", L"svcmgr"));
+ Far::Settings_t * settings = new Far::Settings_t(*get_guid());
+ addToPluginsMenu = settings->get(L"AddToPluginsMenu", addToPluginsMenu);
+ addToDisksMenu = settings->get(L"AddToDisksMenu", addToDisksMenu);
+ waitForState = settings->get(L"waitForState", waitForState);
+ waitTimeout = settings->get(L"waitTimeout", waitTimeout);
+ Base::copy_str(Prefix, settings->get(L"Prefix", L"svcmgr"));
+
+ delete settings;
LogTrace();
set_changed(true);
@@ -114,11 +113,15 @@ void FarGlobalInfo::load_settings() {
}
void FarGlobalInfo::save_settings() const {
- m_settings->set(L"AddToPluginsMenu", addToPluginsMenu);
- m_settings->set(L"AddToDisksMenu", addToDisksMenu);
- m_settings->set(L"waitForState", waitForState);
- m_settings->set(L"waitTimeout", waitTimeout);
- m_settings->set(L"Prefix", Prefix);
+ Far::Settings_t * settings = new Far::Settings_t(*get_guid());
+
+ settings->set(L"AddToPluginsMenu", addToPluginsMenu);
+ settings->set(L"AddToDisksMenu", addToDisksMenu);
+ settings->set(L"waitForState", waitForState);
+ settings->set(L"waitTimeout", waitTimeout);
+ settings->set(L"Prefix", Prefix);
+
+ delete settings;
LogTrace();
set_changed(true);