Stack offset changed from -5 to -4
authorMira <mira.fontan@gmail.com>
Sun, 6 Nov 2016 14:20:23 +0000 (15:20 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Thu, 10 Nov 2016 10:43:21 +0000 (11:43 +0100)
Non functional change, tests under sanitizers OK.

Rationales for change

- Offset in code is in range -4 ... 2
- There was an error by (pathological) corner case MAX_PLY=0

No functional change.

src/search.cpp

index 383996501c6f15411142d9f739fe31752c945dba..7f933a466151a6e29bb375d92ff698a8956402c2 100644 (file)
@@ -335,12 +335,12 @@ void MainThread::search() {
 
 void Thread::search() {
 
-  Stack stack[MAX_PLY+7], *ss = stack+5; // To allow referencing (ss-5) and (ss+2)
+  Stack stack[MAX_PLY+7], *ss = stack+4; // To allow referencing (ss-4) and (ss+2)
   Value bestValue, alpha, beta, delta;
   Move easyMove = MOVE_NONE;
   MainThread* mainThread = (this == Threads.main() ? Threads.main() : nullptr);
 
-  std::memset(ss-5, 0, 8 * sizeof(Stack));
+  std::memset(ss-4, 0, 7 * sizeof(Stack));
 
   bestValue = delta = alpha = -VALUE_INFINITE;
   beta = VALUE_INFINITE;