From 69644d3f734ec97e8448383f9a91ae8cebf83e9c Mon Sep 17 00:00:00 2001 From: Joona Kiiski Date: Fri, 5 Feb 2010 18:05:48 +0200 Subject: [PATCH] Copy 4 SearchStack items in split() In search routines we use information from previous ply and init killers two plies ahead. So for me it seems correct to copy 4 searchstack items in split: ply - 1, ply, ply + 1, ply + 2 Because a) we do not split at root (ply == 0) b) ply < PLY_MAX and SearchStack size is PLY_MAX_PLUS_2 there should be no risk of underflows or overflows Signed-off-by: Marco Costalba --- src/search.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/search.cpp b/src/search.cpp index 07cd6704..69820822 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -3026,7 +3026,7 @@ namespace { for (int i = 0; i < ActiveThreads; i++) if (i == master || splitPoint->slaves[i]) { - memcpy(splitPoint->sstack[i] + ply - 1, sstck + ply - 1, 3 * sizeof(SearchStack)); + memcpy(splitPoint->sstack[i] + ply - 1, sstck + ply - 1, 4 * sizeof(SearchStack)); Threads[i].workIsWaiting = true; // This makes the slave to exit from idle_loop() } -- 2.39.2