]> git.sesse.net Git - stockfish/blobdiff - src/pawns.cpp
Use piece_list to scan the pawns in evaluate_pawns()
[stockfish] / src / pawns.cpp
index 91f8ed752004cb7a48760f71fb0c4d0679617545..e97dd6a4a9763f894c913f23c7be08576436ccd0 100644 (file)
@@ -218,7 +218,7 @@ PawnInfoTable::Values PawnInfoTable::evaluate_pawns(const Position& pos, Bitboar
   int bonus;
   Value mgValue = Value(0);
   Value egValue = Value(0);
   int bonus;
   Value mgValue = Value(0);
   Value egValue = Value(0);
-  Bitboard pawns = ourPawns;
+  const Square* ptr = pos.piece_list_begin(Us, PAWN);
 
   // Initialize pawn storm scores by giving bonuses for open files
   for (File f = FILE_A; f <= FILE_H; f++)
 
   // Initialize pawn storm scores by giving bonuses for open files
   for (File f = FILE_A; f <= FILE_H; f++)
@@ -230,9 +230,8 @@ PawnInfoTable::Values PawnInfoTable::evaluate_pawns(const Position& pos, Bitboar
       }
 
   // Loop through all pawns of the current color and score each pawn
       }
 
   // Loop through all pawns of the current color and score each pawn
-  while (pawns)
+  while ((s = *ptr++) != SQ_NONE)
   {
   {
-      s = pop_1st_bit(&pawns);
       f = square_file(s);
       r = square_rank(s);
 
       f = square_file(s);
       r = square_rank(s);
 
@@ -392,7 +391,7 @@ PawnInfoTable::Values PawnInfoTable::evaluate_pawns(const Position& pos, Bitboar
           mgValue += CandidateMidgameBonus[relative_rank(Us, s)];
           egValue += CandidateEndgameBonus[relative_rank(Us, s)];
       }
           mgValue += CandidateMidgameBonus[relative_rank(Us, s)];
           egValue += CandidateEndgameBonus[relative_rank(Us, s)];
       }
-  } // while (pawns)
+  }
 
   return Values(mgValue, egValue);
 }
 
   return Values(mgValue, egValue);
 }