mirror of
https://github.com/sockspls/badfish
synced 2025-07-11 19:49:14 +00:00
Fix a crash when reaching PLY_MAX in a check position
In this case we call evaluate() being in check and this is not allowed. Bug found testing with reduced PLY_MAX value as suggested by Miguel A. Ballicora on talkchess. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
181d34e5a0
commit
d8e7ce1863
2 changed files with 5 additions and 4 deletions
|
@ -309,6 +309,7 @@ Value do_evaluate(const Position& pos, EvalInfo& ei, int threadID) {
|
||||||
|
|
||||||
assert(pos.is_ok());
|
assert(pos.is_ok());
|
||||||
assert(threadID >= 0 && threadID < THREAD_MAX);
|
assert(threadID >= 0 && threadID < THREAD_MAX);
|
||||||
|
assert(!pos.is_check());
|
||||||
|
|
||||||
memset(&ei, 0, sizeof(EvalInfo));
|
memset(&ei, 0, sizeof(EvalInfo));
|
||||||
|
|
||||||
|
|
|
@ -1048,7 +1048,7 @@ namespace {
|
||||||
EvalInfo ei;
|
EvalInfo ei;
|
||||||
|
|
||||||
if (ply >= PLY_MAX - 1)
|
if (ply >= PLY_MAX - 1)
|
||||||
return evaluate(pos, ei, threadID);
|
return pos.is_check() ? quick_evaluate(pos) : evaluate(pos, ei, threadID);
|
||||||
|
|
||||||
// Mate distance pruning
|
// Mate distance pruning
|
||||||
Value oldAlpha = alpha;
|
Value oldAlpha = alpha;
|
||||||
|
@ -1238,7 +1238,7 @@ namespace {
|
||||||
EvalInfo ei;
|
EvalInfo ei;
|
||||||
|
|
||||||
if (ply >= PLY_MAX - 1)
|
if (ply >= PLY_MAX - 1)
|
||||||
return evaluate(pos, ei, threadID);
|
return pos.is_check() ? quick_evaluate(pos) : evaluate(pos, ei, threadID);
|
||||||
|
|
||||||
// Mate distance pruning
|
// Mate distance pruning
|
||||||
if (value_mated_in(ply) >= beta)
|
if (value_mated_in(ply) >= beta)
|
||||||
|
@ -1529,8 +1529,8 @@ namespace {
|
||||||
else
|
else
|
||||||
staticValue = evaluate(pos, ei, threadID);
|
staticValue = evaluate(pos, ei, threadID);
|
||||||
|
|
||||||
if (ply == PLY_MAX - 1)
|
if (ply >= PLY_MAX - 1)
|
||||||
return evaluate(pos, ei, threadID);
|
return pos.is_check() ? quick_evaluate(pos) : evaluate(pos, ei, threadID);
|
||||||
|
|
||||||
// Initialize "stand pat score", and return it immediately if it is
|
// Initialize "stand pat score", and return it immediately if it is
|
||||||
// at least beta.
|
// at least beta.
|
||||||
|
|
Loading…
Add table
Reference in a new issue