From 5e2fc2aa165b3c0406bcf98c773b952e20f50325 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Mon, 27 Oct 2008 10:15:51 +0100 Subject: [PATCH] Fix a bug in generate_evasions() Introduced in the patch "movegen: prefer (*mlist++) to mlist[n++]" This was nasty because due to a mismerge the repo in one PC had the bug, but the testing one did not, so I had non reproducible results according to which machine I used for testing. This hopefully closes a more then one week regression that made me go crazy! It was found by accident comparing, for other reasons, the sources of the two PC's. Signed-off-by: Marco Costalba --- src/movegen.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/movegen.cpp b/src/movegen.cpp index 397732b5..56caa9a4 100644 --- a/src/movegen.cpp +++ b/src/movegen.cpp @@ -306,26 +306,26 @@ int generate_evasions(const Position& pos, MoveStack* mlist) { // Pawn moves. Because a blocking evasion can never be a capture, we // only generate pawn pushes. if (us == WHITE) - generate_pawn_blocking_evasions(pos, not_pinned, blockSquares, mlist); + mlist = generate_pawn_blocking_evasions(pos, not_pinned, blockSquares, mlist); else - generate_pawn_blocking_evasions(pos, not_pinned, blockSquares, mlist); + mlist = generate_pawn_blocking_evasions(pos, not_pinned, blockSquares, mlist); // Pieces moves b1 = pos.knights(us) & not_pinned; if (b1) - generate_piece_blocking_evasions(pos, b1, blockSquares, mlist); + mlist = generate_piece_blocking_evasions(pos, b1, blockSquares, mlist); b1 = pos.bishops(us) & not_pinned; if (b1) - generate_piece_blocking_evasions(pos, b1, blockSquares, mlist); + mlist = generate_piece_blocking_evasions(pos, b1, blockSquares, mlist); b1 = pos.rooks(us) & not_pinned; if (b1) - generate_piece_blocking_evasions(pos, b1, blockSquares, mlist); + mlist = generate_piece_blocking_evasions(pos, b1, blockSquares, mlist); b1 = pos.queens(us) & not_pinned; if (b1) - generate_piece_blocking_evasions(pos, b1, blockSquares, mlist); + mlist = generate_piece_blocking_evasions(pos, b1, blockSquares, mlist); } // Finally, the ugly special case of en passant captures. An en passant -- 2.39.2