aboutsummaryrefslogtreecommitdiff
path: root/src/engine_tab
diff options
context:
space:
mode:
authorLoic Guegan <manzerbredes@mailbox.org>2022-02-28 18:51:47 +0100
committerLoic Guegan <manzerbredes@mailbox.org>2022-02-28 18:51:47 +0100
commita8c59c41bc103f0336d9982369be5dd85ac68111 (patch)
treefb6bfea03fe6b000fc7f3c4a0421388cd6a13d57 /src/engine_tab
parent8f1e8fa106107c61c7ac62fa0f13340537ba4d23 (diff)
Fix majors memory leaks (TODO: shared_ptr for Game objects and implement ~Game())
Diffstat (limited to 'src/engine_tab')
-rw-r--r--src/engine_tab/EngineTab.cpp10
-rw-r--r--src/engine_tab/EngineTab.hpp1
2 files changed, 10 insertions, 1 deletions
diff --git a/src/engine_tab/EngineTab.cpp b/src/engine_tab/EngineTab.cpp
index 6db6bdd..67ddc22 100644
--- a/src/engine_tab/EngineTab.cpp
+++ b/src/engine_tab/EngineTab.cpp
@@ -30,7 +30,7 @@ EngineTab::EngineTab(wxWindow *parent, uciadapter::UCI *engine,
}
EngineTab::EngineTab(wxWindow *parent, std::string name)
- : TabEngine(parent), TabInfos(TabInfos::ENGINE) {
+ : TabEngine(parent), TabInfos(TabInfos::ENGINE), engine(NULL) {
SetLabel(name);
engineName = name;
confGroup = "engines/" + engineName;
@@ -44,6 +44,14 @@ EngineTab::EngineTab(wxWindow *parent, std::string name)
Bind(wxEVT_BUTTON, &EngineTab::OnDelete, this, ENGINE_DELETE_CONF_BUTTON);
}
+EngineTab::~EngineTab() {
+ if (engine != NULL) {
+ wxLogDebug("EngineTab destructor: destroying engine!");
+ engine->quit();
+ delete engine;
+ }
+}
+
void EngineTab::OnDelete(wxCommandEvent &event) {
CONFIG_OPEN(conf);
conf->DeleteGroup(confGroup);
diff --git a/src/engine_tab/EngineTab.hpp b/src/engine_tab/EngineTab.hpp
index b1e7ff0..aa5eb70 100644
--- a/src/engine_tab/EngineTab.hpp
+++ b/src/engine_tab/EngineTab.hpp
@@ -16,6 +16,7 @@ public:
EngineTab(wxWindow *parent, uciadapter::UCI *engine,
std::string engine_path_or_name);
EngineTab(wxWindow *parent, std::string name);
+ ~EngineTab();
void ApplyPreferences() {}
void *GetGame() { return (NULL); }
void *GetBase() { return (NULL); }