aboutsummaryrefslogtreecommitdiff
path: root/src/base_tab/gamebase
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/base_tab/gamebase
parent8f1e8fa106107c61c7ac62fa0f13340537ba4d23 (diff)
Fix majors memory leaks (TODO: shared_ptr for Game objects and implement ~Game())
Diffstat (limited to 'src/base_tab/gamebase')
-rw-r--r--src/base_tab/gamebase/PGNGameBase.cpp4
-rw-r--r--src/base_tab/gamebase/PGNGameBase.hpp1
2 files changed, 5 insertions, 0 deletions
diff --git a/src/base_tab/gamebase/PGNGameBase.cpp b/src/base_tab/gamebase/PGNGameBase.cpp
index 7a1a6a4..edcd98f 100644
--- a/src/base_tab/gamebase/PGNGameBase.cpp
+++ b/src/base_tab/gamebase/PGNGameBase.cpp
@@ -6,6 +6,10 @@ PGNGameBase::PGNGameBase(std::string pgn_file) : pgn(new pgnp::PGN()) {
pgn->FromFile(pgn_file);
}
+PGNGameBase::~PGNGameBase() {
+ delete pgn; // Should never fail since pgn is never NULL
+}
+
bool PGNGameBase::NextGame() {
bool game_found = false;
try {
diff --git a/src/base_tab/gamebase/PGNGameBase.hpp b/src/base_tab/gamebase/PGNGameBase.hpp
index 982f57c..4f39e1a 100644
--- a/src/base_tab/gamebase/PGNGameBase.hpp
+++ b/src/base_tab/gamebase/PGNGameBase.hpp
@@ -8,6 +8,7 @@ class PGNGameBase : public GameBase {
public:
PGNGameBase(std::string pgn_file);
+ ~PGNGameBase();
Game *GetGame(std::uint32_t id);
bool NextGame();
Game *GetCurrentGame();