From 4182513d63f67e1b0f9da7b93f7a48d959e3133f Mon Sep 17 00:00:00 2001 From: Loic Guegan Date: Fri, 20 Jan 2023 10:08:10 +0100 Subject: Integrate GotoNextGame() for better efficiency --- src/base_tab/gamebase/PGNGameBase.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/base_tab/gamebase/PGNGameBase.cpp b/src/base_tab/gamebase/PGNGameBase.cpp index a969451..01da01f 100644 --- a/src/base_tab/gamebase/PGNGameBase.cpp +++ b/src/base_tab/gamebase/PGNGameBase.cpp @@ -69,13 +69,16 @@ void PGNGameBase::Reset() { std::shared_ptr PGNGameBase::GetGame(std::uint32_t id) { Reset(); std::uint32_t curid = 0; - while (NextGame()) { - if (id == curid) { - return (GetCurrentGame()); + while(curid!= id){ + try { + pgn->GotoNextGame(); // Faster than pgn->ParseNextGame() + } catch (...) { + return nullptr; } curid++; } - return nullptr; + pgn->ParseNextGame(); + return GetCurrentGame(); } void PGNGameBase::Save(std::vector to_delete, -- cgit v1.2.3