From b8ab5d533b8e7e3b12d6768745f407f7f9f8f434 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Mon, 8 Jun 2009 10:52:03 +0100 Subject: [PATCH] Micro optimize pretty_pv Creating an History object requires clearing the History tables, although fast is an useless job in san.cpp where History is used just as a dummy argument for MovePicker c'tor. So use a file scoped constant instead of creating a new History() object each time MovePicker c'tor is called as in move_ambiguity() This optimizes pretty_pv() through the following calling chain: pretty_pv() -> line_to_san() -> move_to_san() -> move_ambiguity() No functional change. Signed-off-by: Marco Costalba --- src/san.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/san.cpp b/src/san.cpp index 8c26ac00..fad47f95 100644 --- a/src/san.cpp +++ b/src/san.cpp @@ -40,8 +40,6 @@ using std::string; namespace { - /// Types - enum Ambiguity { AMBIGUITY_NONE, AMBIGUITY_FILE, @@ -49,8 +47,7 @@ namespace { AMBIGUITY_BOTH }; - - /// Functions + const History H; // used as dummy argument for MovePicker c'tor Ambiguity move_ambiguity(const Position& pos, Move m); const string time_string(int milliseconds); @@ -144,7 +141,7 @@ Move move_from_san(const Position& pos, const string& movestr) { assert(pos.is_ok()); - MovePicker mp = MovePicker(pos, false, MOVE_NONE, OnePly, History()); + MovePicker mp = MovePicker(pos, false, MOVE_NONE, OnePly, H); // Castling moves if (movestr == "O-O-O" || movestr == "O-O-O+") @@ -368,7 +365,7 @@ namespace { if (type_of_piece(pc) == KING) return AMBIGUITY_NONE; - MovePicker mp = MovePicker(pos, false, MOVE_NONE, OnePly, History()); + MovePicker mp = MovePicker(pos, false, MOVE_NONE, OnePly, H); Move mv, moveList[8]; int n = 0; -- 2.39.2