From: joergoster Date: Sat, 9 Jul 2016 19:01:42 +0000 (+0200) Subject: Fix extract_ponder_from_tt() X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=82d02a3133dd04c86010d7c93e3bc64252ea65a9 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. --- 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) {