From: Marco Costalba Date: Tue, 18 Jan 2011 06:34:36 +0000 (+0100) Subject: Fix a (bestValue == -VALUE_INFINITE) assert X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=5bad5fc0a737b214b2a6b3031e4b92200be012eb;hp=6119e4ea3753ec5db2d12e7ad24333fcaef08e8b Fix a (bestValue == -VALUE_INFINITE) assert In case of a Root node we can leave with bestValue set to -VALUE_INFINITE if search is stopped by the GUI and stopReques flag is raised. This patch fixes the issue. No functional change. Signed-off-by: Marco Costalba --- diff --git a/src/search.cpp b/src/search.cpp index 2adc2e09..95fab3f1 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -802,7 +802,7 @@ namespace { } else if (Root) bestValue = alpha; - else {} // Hack to fix icc's "statement is unreachable" warning + else {} // Hack to fix icc's "statement is unreachable" warning FIXME // Step 1. Initialize node and poll. Polling can abort search ss->currentMove = ss->bestMove = threatMove = MOVE_NONE; @@ -1233,6 +1233,10 @@ split_point_start: // At split points actual search starts from here if (Root) { + // To avoid to exit with bestValue == -VALUE_INFINITE + if (value > bestValue) + bestValue = value; + // Finished searching the move. If StopRequest is true, the search // was aborted because the user interrupted the search or because we // ran out of time. In this case, the return value of the search cannot @@ -1274,10 +1278,10 @@ split_point_start: // At split points actual search starts from here { // Raise alpha to setup proper non-pv search upper bound if (value > alpha) - alpha = bestValue = value; + alpha = value; } else // Set alpha equal to minimum score among the PV lines - alpha = bestValue = Rml[Min(moveCount, MultiPV) - 1].pv_score; // FIXME why moveCount? + alpha = Rml[Min(moveCount, MultiPV) - 1].pv_score; // FIXME why moveCount? } // PV move or new best move }