From 82d02a3133dd04c86010d7c93e3bc64252ea65a9 Mon Sep 17 00:00:00 2001 From: joergoster Date: Sat, 9 Jul 2016 21:01:42 +0200 Subject: [PATCH] Fix extract_ponder_from_tt() Checking for legality of a possible ponder move must be done before we undo the first pv move, of course. (spotted by mohammed li.) This obviously only has any effect when playing in ponder mode. No functional change. --- src/search.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/search.cpp b/src/search.cpp index 97ab5918..b7352817 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1574,16 +1574,16 @@ bool RootMove::extract_ponder_from_tt(Position& pos) pos.do_move(pv[0], st, pos.gives_check(pv[0], CheckInfo(pos))); TTEntry* tte = TT.probe(pos.key(), ttHit); - pos.undo_move(pv[0]); if (ttHit) { Move m = tte->move(); // Local copy to be SMP safe if (MoveList(pos).contains(m)) - return pv.push_back(m), true; + pv.push_back(m); } - return false; + pos.undo_move(pv[0]); + return pv.size() > 1; } void Tablebases::filter_root_moves(Position& pos, Search::RootMoves& rootMoves) { -- 2.39.2