From 44ea0a50a39d58cb9e1f167c2973e396b4d853aa Mon Sep 17 00:00:00 2001 From: Loic Guegan Date: Mon, 28 Feb 2022 20:16:57 +0100 Subject: Migrate to std::shared_ptr --- src/base_tab/gamebase/PGNGameBase.cpp | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) (limited to 'src/base_tab/gamebase/PGNGameBase.cpp') diff --git a/src/base_tab/gamebase/PGNGameBase.cpp b/src/base_tab/gamebase/PGNGameBase.cpp index edcd98f..331d760 100644 --- a/src/base_tab/gamebase/PGNGameBase.cpp +++ b/src/base_tab/gamebase/PGNGameBase.cpp @@ -28,7 +28,7 @@ std::string PGNGameBase::GetTag(std::string tag) { return (""); } -Game *PGNGameBase::GetCurrentGame() { +std::shared_ptr PGNGameBase::GetCurrentGame() { pgnp::HalfMove *pgnp_moves = new pgnp::HalfMove(); pgn->GetMoves(pgnp_moves); std::string fen = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"; @@ -42,7 +42,7 @@ Game *PGNGameBase::GetCurrentGame() { g->SetTag(s, pgn->GetTagValue(s)); } g->SetResult(pgn->GetResult()); - return (g); + return (std::shared_ptr(g)); } void PGNGameBase::Reset() { @@ -51,7 +51,7 @@ void PGNGameBase::Reset() { pgn->FromFile(file); } -Game *PGNGameBase::GetGame(std::uint32_t id) { +std::shared_ptr PGNGameBase::GetGame(std::uint32_t id) { Reset(); std::uint32_t curid = 0; while (NextGame()) { @@ -60,12 +60,12 @@ Game *PGNGameBase::GetGame(std::uint32_t id) { } curid++; } - return (NULL); + return (std::shared_ptr(NULL)); } void PGNGameBase::Save(std::vector to_ignore, std::vector new_games_bases, - std::vector new_games) { + std::vector> new_games) { wxStandardPaths stdPaths = wxStandardPaths::Get(); wxString tmp = stdPaths.GetTempDir() + "/save_pgn_tmp.pgn"; wxFile new_pgn(tmp, wxFile::write); @@ -80,9 +80,8 @@ void PGNGameBase::Save(std::vector to_ignore, } else { several = true; } - Game *g = GetCurrentGame(); + std::shared_ptr g = GetCurrentGame(); new_pgn.Write(g->GetPGN()); - delete g; } id++; } @@ -96,13 +95,12 @@ void PGNGameBase::Save(std::vector to_ignore, } else { several = true; } - Game *g = current->GetCurrentGame(); + std::shared_ptr g = current->GetCurrentGame(); new_pgn.Write(g->GetPGN()); - delete g; } } - for (Game *g : new_games) { + for (std::shared_ptr g : new_games) { if (several) { new_pgn.Write("\n\n"); } else { @@ -127,9 +125,8 @@ void PGNGameBase::Export(GameBase *base) { } else { several = true; } - Game *g = base->GetCurrentGame(); + std::shared_ptr g = base->GetCurrentGame(); new_pgn.Write(g->GetPGN()); - delete g; } new_pgn.Close(); -- cgit v1.2.3