1
0
Fork 0

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 <mcostalba@gmail.com>
sf_2.3.1_base
Marco Costalba 2011-01-18 07:34:36 +01:00
parent 6119e4ea37
commit 5bad5fc0a7
1 changed files with 7 additions and 3 deletions

View File

@ -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
}