From 17d820e24868947c8f64222aa17eb21f6466cd00 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Tue, 24 Aug 2010 15:59:24 +0200 Subject: [PATCH] Don't need to memset() EvalInfo Set manually to zero the few fields that are optionally populated and that's enough. No functional change. Signed-off-by: Marco Costalba --- src/evaluate.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 9c960409..6bdf4235 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -23,7 +23,6 @@ //// #include -#include #include "bitcount.h" #include "evaluate.h" @@ -248,8 +247,6 @@ Value do_evaluate(const Position& pos, EvalInfo& ei) { assert(pos.thread() >= 0 && pos.thread() < MAX_THREADS); assert(!pos.is_check()); - memset(&ei, 0, sizeof(EvalInfo)); - // Initialize by reading the incrementally updated scores included in the // position object (material + piece square tables). ei.value = pos.value(); @@ -430,8 +427,8 @@ namespace { ei.kingZone[Us] = (b | (Us == WHITE ? b >> 8 : b << 8)); ei.attackedBy[Us][PAWN] = ei.pi->pawn_attacks(Us); b &= ei.attackedBy[Us][PAWN]; - if (b) - ei.kingAttackersCount[Us] = count_1s_max_15(b) / 2; + ei.kingAttackersCount[Us] = b ? count_1s_max_15(b) / 2 : 0; + ei.kingAdjacentZoneAttacksCount[Us] = ei.kingAttackersWeight[Us] = 0; } @@ -475,6 +472,8 @@ namespace { const Color Them = (Us == WHITE ? BLACK : WHITE); const Square* ptr = pos.piece_list_begin(Us, Piece); + ei.attackedBy[Us][Piece] = 0; + while ((s = *ptr++) != SQ_NONE) { // Find attacked squares, including x-ray attacks for bishops and rooks @@ -716,7 +715,8 @@ namespace { // result in a score change far bigger than the value of the captured piece. ei.value -= Sign[Us] * KingDangerTable[Us][attackUnits]; ei.kingDanger[Us] = mg_value(KingDangerTable[Us][attackUnits]); - } + } else + ei.kingDanger[Us] = VALUE_ZERO; } -- 2.39.2