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/?a=commitdiff_plain;h=82d02a3133dd04c86010d7c93e3bc64252ea65a9;p=stockfish 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) {