aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLoic Guegan <manzerbredes@mailbox.org>2023-01-20 10:08:10 +0100
committerLoic Guegan <manzerbredes@mailbox.org>2023-01-20 10:08:10 +0100
commit4182513d63f67e1b0f9da7b93f7a48d959e3133f (patch)
tree6f3f56ec98e154eeaaf59953b984f45a24bbbb33 /src
parent1eca34d0ef74ba17178728f0e75bd2504af463ee (diff)
Integrate GotoNextGame() for better efficiency
Diffstat (limited to 'src')
-rw-r--r--src/base_tab/gamebase/PGNGameBase.cpp11
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,