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>
}
else if (Root)
bestValue = alpha;
}
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;
// Step 1. Initialize node and poll. Polling can abort search
ss->currentMove = ss->bestMove = threatMove = MOVE_NONE;
+ // 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
// 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
{
// Raise alpha to setup proper non-pv search upper bound
if (value > alpha)
{
// Raise alpha to setup proper non-pv search upper bound
if (value > alpha)
- alpha = bestValue = value;
}
else // Set alpha equal to minimum score among the PV lines
}
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
}
} // PV move or new best move
}