From db322e6a63459bc3dfdf7fd537d42234b854fb76 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Mon, 4 Mar 2013 09:28:21 +0100 Subject: [PATCH] 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. --- src/benchmark.cpp | 3 +-- src/search.cpp | 1 - src/search.h | 2 -- src/thread.cpp | 7 +++---- src/thread.h | 4 ++-- src/uci.cpp | 6 +----- 6 files changed, 7 insertions(+), 16 deletions(-) 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); } } -- 2.39.2