]> git.sesse.net Git - stockfish/blobdiff - src/movepick.cpp
Sync with master
[stockfish] / src / movepick.cpp
index 1f4ef1952d0a0c469ba654f31512c3c3966e7712..b3f413bf1ffa0bd20255ccd5f25893839dfd1e45 100644 (file)
@@ -55,7 +55,7 @@ namespace {
   inline Move pick_best(ExtMove* begin, ExtMove* end)
   {
       std::swap(*begin, *std::max_element(begin, end));
-      return begin->move;
+      return *begin;
   }
 
 } // namespace
@@ -203,8 +203,8 @@ void MovePicker::generate_next_stage() {
       cur = killers;
       endMoves = cur + 2;
 
-      killers[0].move = ss->killers[0];
-      killers[1].move = ss->killers[1];
+      killers[0] = ss->killers[0];
+      killers[1] = ss->killers[1];
       killers[2].move = killers[3].move = MOVE_NONE;
       killers[4].move = killers[5].move = MOVE_NONE;
 
@@ -213,16 +213,16 @@ void MovePicker::generate_next_stage() {
 
       // Be sure countermoves and followupmoves are different from killers
       for (int i = 0; i < 2; ++i)
-          if (   countermoves[i] != killers[0].move
-              && countermoves[i] != killers[1].move)
-              (endMoves++)->move = countermoves[i];
+          if (   countermoves[i] != killers[0]
+              && countermoves[i] != killers[1])
+              *endMoves++ = countermoves[i];
 
       for (int i = 0; i < 2; ++i)
-          if (   followupmoves[i] != killers[0].move
-              && followupmoves[i] != killers[1].move
-              && followupmoves[i] != killers[2].move
-              && followupmoves[i] != killers[3].move)
-              (endMoves++)->move = followupmoves[i];
+          if (   followupmoves[i] != killers[0]
+              && followupmoves[i] != killers[1]
+              && followupmoves[i] != killers[2]
+              && followupmoves[i] != killers[3])
+              *endMoves++ = followupmoves[i];
       break;
 
   case QUIETS_1_S1:
@@ -260,7 +260,7 @@ void MovePicker::generate_next_stage() {
       /* Fall through */
 
   case STOP:
-      endMoves = cur + 1; // Avoid another next_phase() call
+      endMoves = cur + 1; // Avoid another generate_next_stage() call
       break;
 
   default:
@@ -297,7 +297,7 @@ Move MovePicker::next_move<false>() {
                   return move;
 
               // Losing capture, move it to the tail of the array
-              (endBadCaptures--)->move = move;
+              *endBadCaptures-- = move;
           }
           break;
 
@@ -313,12 +313,12 @@ Move MovePicker::next_move<false>() {
       case QUIETS_1_S1: case QUIETS_2_S1:
           move = *cur++;
           if (   move != ttMove
-              && move != killers[0].move
-              && move != killers[1].move
-              && move != killers[2].move
-              && move != killers[3].move
-              && move != killers[4].move
-              && move != killers[5].move)
+              && move != killers[0]
+              && move != killers[1]
+              && move != killers[2]
+              && move != killers[3]
+              && move != killers[4]
+              && move != killers[5])
               return move;
           break;