]> git.sesse.net Git - stockfish/blobdiff - src/evaluate.cpp
Avoid a needless locking in sp_search()
[stockfish] / src / evaluate.cpp
index ba3ea9fb4def53ac2351033c3227d3cf7b1455f4..104a0a6bed5b3ab54018c68bcc641fdfe81e1cbe 100644 (file)
@@ -309,6 +309,7 @@ Value do_evaluate(const Position& pos, EvalInfo& ei, int threadID) {
 
   assert(pos.is_ok());
   assert(threadID >= 0 && threadID < THREAD_MAX);
+  assert(!pos.is_check());
 
   memset(&ei, 0, sizeof(EvalInfo));
 
@@ -1068,7 +1069,10 @@ namespace {
             Square winnerQSq = relative_square(winnerSide, make_square(square_file(pawnToGo[winnerSide]), RANK_8));
             Square loserQSq = relative_square(loserSide, make_square(square_file(pawnToGo[loserSide]), RANK_8));
 
-            Bitboard b = pos.attacks_from<QUEEN>(winnerQSq);
+            Bitboard b = pos.occupied_squares();
+            clear_bit(&b, pawnToGo[winnerSide]);
+            clear_bit(&b, pawnToGo[loserSide]);
+            b = queen_attacks_bb(winnerQSq, b);
 
             if (  (b & pos.pieces(KING, loserSide))
                 ||(bit_is_set(b, loserQSq) && !bit_is_set(ei.attacked_by(loserSide), loserQSq)))