Fix incorrect initialization

Fixes https://github.com/official-stockfish/Stockfish/issues/6505

Missing initialization seemingly resulting in side effects, as discussed in the issue.

Credit to Sopel for spotting the bug.

PR used as a testcase for CoPilot, doing the right thing https://github.com/official-stockfish/Stockfish/pull/6478#discussion_r2655467218

closes https://github.com/official-stockfish/Stockfish/pull/6511

No functional change
This commit is contained in:
Joost VandeVondele
2026-01-01 15:51:09 +01:00
parent 44d5467bbe
commit e0fb783c30
2 changed files with 5 additions and 5 deletions
+3 -3
View File
@@ -105,10 +105,10 @@ struct DynStats {
data = make_unique_large_page<T[]>(size); data = make_unique_large_page<T[]>(size);
} }
// Sets all values in the range to 0 // Sets all values in the range to 0
void clear_range(int value, size_t threadIdx) { void clear_range(int value, size_t threadIdx, size_t numaTotal) {
size_t start = threadIdx * SizeMultiplier; size_t start = uint64_t(threadIdx) * size / numaTotal;
assert(start < size); assert(start < size);
size_t end = std::min(start + SizeMultiplier, size); size_t end = threadIdx + 1 == numaTotal ? size : uint64_t(threadIdx + 1) * size / numaTotal;
while (start < end) while (start < end)
data[start++].fill(value); data[start++].fill(value);
+2 -2
View File
@@ -582,8 +582,8 @@ void Search::Worker::clear() {
captureHistory.fill(-689); captureHistory.fill(-689);
// Each thread is responsible for clearing their part of shared history // Each thread is responsible for clearing their part of shared history
sharedHistory.correctionHistory.clear_range(0, numaThreadIdx); sharedHistory.correctionHistory.clear_range(0, numaThreadIdx, numaTotal);
sharedHistory.pawnHistory.clear_range(-1238, numaThreadIdx); sharedHistory.pawnHistory.clear_range(-1238, numaThreadIdx, numaTotal);
ttMoveHistory = 0; ttMoveHistory = 0;