From d4250c52f0060223be666944dc156b28c86ca330 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Wed, 25 Aug 2010 20:05:38 +0100 Subject: [PATCH] Remove MaterialInfo* from EvalInfo Use a local variable instead. No functional change. Signed-off-by: Marco Costalba --- src/evaluate.cpp | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 981c97db..feadbae4 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -50,8 +50,7 @@ namespace { // typically is used by the search for pruning decisions. Value margin[2]; - // Pointers to material and pawn hash table entries - MaterialInfo* mi; + // Pointer to pawn hash table entry PawnInfo* pi; // attackedBy[color][piece type] is a bitboard representing all squares @@ -301,17 +300,17 @@ Value do_evaluate(const Position& pos, Value margins[]) { ei.value = pos.value(); // Probe the material hash table - ei.mi = MaterialTable[pos.thread()]->get_material_info(pos); - ei.value += ei.mi->material_value(); + MaterialInfo* mi = MaterialTable[pos.thread()]->get_material_info(pos); + ei.value += mi->material_value(); // If we have a specialized evaluation function for the current material // configuration, call it and return. - if (ei.mi->specialized_eval_exists()) - return ei.mi->evaluate(pos); + if (mi->specialized_eval_exists()) + return mi->evaluate(pos); // After get_material_info() call that modifies them - factor[WHITE] = ei.mi->scale_factor(pos, WHITE); - factor[BLACK] = ei.mi->scale_factor(pos, BLACK); + factor[WHITE] = mi->scale_factor(pos, WHITE); + factor[BLACK] = mi->scale_factor(pos, BLACK); // Probe the pawn hash table ei.pi = PawnTable[pos.thread()]->get_pawn_info(pos); @@ -340,7 +339,7 @@ Value do_evaluate(const Position& pos, Value margins[]) { evaluate_passed_pawns(pos, ei); evaluate_passed_pawns(pos, ei); - Phase phase = ei.mi->game_phase(); + Phase phase = mi->game_phase(); // Middle-game specific evaluation terms if (phase > PHASE_ENDGAME) @@ -357,10 +356,10 @@ Value do_evaluate(const Position& pos, Value margins[]) { ei.value += make_score(ei.pi->kingside_storm_value(WHITE) - ei.pi->queenside_storm_value(BLACK), 0); // Evaluate space for both sides - if (ei.mi->space_weight() > 0) + if (mi->space_weight() > 0) { int s = evaluate_space(pos, ei) - evaluate_space(pos, ei); - ei.value += apply_weight(make_score(s * ei.mi->space_weight(), 0), Weights[Space]); + ei.value += apply_weight(make_score(s * mi->space_weight(), 0), Weights[Space]); } } -- 2.39.2