From: Marco Costalba Date: Mon, 4 Mar 2013 08:28:21 +0000 (+0100) Subject: Revert "Store moves sent with "position" UCI command" X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=db322e6a63459bc3dfdf7fd537d42234b854fb76 Revert "Store moves sent with "position" UCI command" This reverts commit 0d68b523a390e2f5c37f211316869d798e852289. After easy move semplification this machinery is not needed anymore (because of we don't need to know if a root move is a recapture) No functional change. --- diff --git a/src/benchmark.cpp b/src/benchmark.cpp index fa0aa3e9..25dab6cc 100644 --- a/src/benchmark.cpp +++ b/src/benchmark.cpp @@ -114,7 +114,6 @@ void benchmark(const Position& current, istream& is) { int64_t nodes = 0; Search::StateStackPtr st; - Search::MovesVectPtr mv; Time::point elapsed = Time::now(); for (size_t i = 0; i < fens.size(); i++) @@ -131,7 +130,7 @@ void benchmark(const Position& current, istream& is) { } else { - Threads.start_thinking(pos, limits, vector(), st, mv); + Threads.start_thinking(pos, limits, vector(), st); Threads.wait_for_think_finished(); nodes += Search::RootPos.nodes_searched(); } diff --git a/src/search.cpp b/src/search.cpp index ab88142f..fc3ecae4 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -44,7 +44,6 @@ namespace Search { Color RootColor; Time::point SearchTime; StateStackPtr SetupStates; - MovesVectPtr SetupMoves; } using std::string; diff --git a/src/search.h b/src/search.h index 73fa79ae..bd210237 100644 --- a/src/search.h +++ b/src/search.h @@ -93,7 +93,6 @@ struct SignalsType { }; typedef std::auto_ptr > StateStackPtr; -typedef std::auto_ptr > MovesVectPtr; extern volatile SignalsType Signals; extern LimitsType Limits; @@ -102,7 +101,6 @@ extern Position RootPos; extern Color RootColor; extern Time::point SearchTime; extern StateStackPtr SetupStates; -extern MovesVectPtr SetupMoves; extern void init(); extern size_t perft(Position& pos, Depth depth); diff --git a/src/thread.cpp b/src/thread.cpp index 0d8070f2..f5b8b5e2 100644 --- a/src/thread.cpp +++ b/src/thread.cpp @@ -357,8 +357,8 @@ void ThreadPool::wait_for_think_finished() { // start_thinking() wakes up the main thread sleeping in MainThread::idle_loop() // so to start a new search, then returns immediately. -void ThreadPool::start_thinking(const Position& pos, const LimitsType& limits, const std::vector& searchMoves, - StateStackPtr& setupStates, MovesVectPtr& setupMoves) { +void ThreadPool::start_thinking(const Position& pos, const LimitsType& limits, + const std::vector& searchMoves, StateStackPtr& states) { wait_for_think_finished(); SearchTime = Time::now(); // As early as possible @@ -368,8 +368,7 @@ void ThreadPool::start_thinking(const Position& pos, const LimitsType& limits, c RootPos = pos; Limits = limits; - SetupStates = setupStates; // Ownership transfer here - SetupMoves = setupMoves; // Ownership transfer here + SetupStates = states; // Ownership transfer here RootMoves.clear(); for (MoveList ml(pos); !ml.end(); ++ml) diff --git a/src/thread.h b/src/thread.h index ac6040f2..fbd3b7f4 100644 --- a/src/thread.h +++ b/src/thread.h @@ -151,8 +151,8 @@ struct ThreadPool : public std::vector { void read_uci_options(); Thread* available_slave(Thread* master) const; void wait_for_think_finished(); - void start_thinking(const Position&, const Search::LimitsType&, const std::vector&, - Search::StateStackPtr&, Search::MovesVectPtr&); + void start_thinking(const Position&, const Search::LimitsType&, + const std::vector&, Search::StateStackPtr&); bool sleepWhileIdle; Depth minimumSplitDepth; diff --git a/src/uci.cpp b/src/uci.cpp index 3a33b9f4..c8f50446 100644 --- a/src/uci.cpp +++ b/src/uci.cpp @@ -42,7 +42,6 @@ namespace { // Keep track of position keys along the setup moves (from start position to the // position just before to start searching). Needed by repetition draw detection. Search::StateStackPtr SetupStates; - Search::MovesVectPtr SetupMoves; void set_option(istringstream& up); void set_position(Position& pos, istringstream& up); @@ -149,13 +148,10 @@ namespace { pos.set(fen, Options["UCI_Chess960"], Threads.main_thread()); SetupStates = Search::StateStackPtr(new std::stack()); - SetupMoves = Search::MovesVectPtr(new std::vector()); - SetupMoves->reserve(200); // Try to avoid reallocations // Parse move list (if any) while (is >> token && (m = move_from_uci(pos, token)) != MOVE_NONE) { - SetupMoves->push_back(m); SetupStates->push(StateInfo()); pos.do_move(m, SetupStates->top()); } @@ -215,6 +211,6 @@ namespace { else if (token == "ponder") limits.ponder = true; } - Threads.start_thinking(pos, limits, searchMoves, SetupStates, SetupMoves); + Threads.start_thinking(pos, limits, searchMoves, SetupStates); } }