diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2023-01-20 10:08:10 +0100 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2023-01-20 10:08:10 +0100 |
| commit | 4182513d63f67e1b0f9da7b93f7a48d959e3133f (patch) | |
| tree | 6f3f56ec98e154eeaaf59953b984f45a24bbbb33 /src | |
| parent | 1eca34d0ef74ba17178728f0e75bd2504af463ee (diff) | |
Integrate GotoNextGame() for better efficiency
Diffstat (limited to 'src')
| -rw-r--r-- | src/base_tab/gamebase/PGNGameBase.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
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<Game> 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<std::uint32_t> to_delete, |
