X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fevaluate.cpp;h=12542af09f5b63cdb1f25c29344596a331a22f19;hp=bf02fc81f319025c3905da95f44d2266920c83be;hb=67f975e56b21f4e6b5b878eff56b40aaf0e7309d;hpb=1d8994402bc6d3132f5147194a8b54e1c00b27a6 diff --git a/src/evaluate.cpp b/src/evaluate.cpp index bf02fc81..12542af0 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -501,27 +501,27 @@ Value quick_evaluate(const Position &pos) { /// init_eval() initializes various tables used by the evaluation function. void init_eval(int threads) { + assert(threads <= THREAD_MAX); - - for(int i = 0; i < threads; i++) { - if(PawnTable[i] == NULL) - PawnTable[i] = new PawnInfoTable(PawnTableSize); - if(MaterialTable[i] == NULL) - MaterialTable[i] = new MaterialInfoTable(MaterialTableSize); - } - for(int i = threads; i < THREAD_MAX; i++) { - if(PawnTable[i] != NULL) { - delete PawnTable[i]; - PawnTable[i] = NULL; - } - if(MaterialTable[i] != NULL) { - delete MaterialTable[i]; - MaterialTable[i] = NULL; + + for (int i = 0; i < THREAD_MAX; i++) + { + if (i >= threads) + { + delete PawnTable[i]; + delete MaterialTable[i]; + PawnTable[i] = NULL; + MaterialTable[i] = NULL; + continue; } + if (!PawnTable[i]) + PawnTable[i] = new PawnInfoTable(PawnTableSize); + if (!MaterialTable[i]) + MaterialTable[i] = new MaterialInfoTable(MaterialTableSize); } - for(Bitboard b = 0ULL; b < 256ULL; b++) - BitCount8Bit[b] = count_1s(b); + for (Bitboard b = 0ULL; b < 256ULL; b++) + BitCount8Bit[b] = count_1s(b); }