This time make sure that valuable TTentries are not overwritten.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
// Write PV to transposition table, in case the relevant entries have
// been overwritten during the search.
- //TT.insert_pv(p, ss[0].pv);
+ TT.insert_pv(p, ss[0].pv);
if (AbortSearch)
break; // Value cannot be trusted. Break out immediately!
for (int i = 0; pv[i] != MOVE_NONE; i++)
{
- store(p.get_key(), VALUE_NONE, VALUE_TYPE_NONE, Depth(-127*OnePly), pv[i]);
+ TTEntry *tte = retrieve(p.get_key());
+ if (!tte || tte->move() != pv[i])
+ store(p.get_key(), VALUE_NONE, VALUE_TYPE_NONE, Depth(-127*OnePly), pv[i]);
p.do_move(pv[i], st);
}
}