Fix a possible 'Division by zero'
authorMarco Costalba <mcostalba@gmail.com>
Sat, 26 May 2012 22:14:37 +0000 (23:14 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Sat, 26 May 2012 22:17:22 +0000 (23:17 +0100)
In case a book entry has 'count' field set to 0
we crash. Spotted by Clang's static analyzer.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
src/book.cpp

index 0fff6827e1125a26a59ea158202dfd2409144e84..fbb1984cf5cba6ca183465f7b58b5d4bbeaedb0a 100644 (file)
@@ -420,7 +420,7 @@ Move Book::probe(const Position& pos, const string& fName, bool pickBest) {
       // Choose book move according to its score. If a move has a very
       // high score it has higher probability to be choosen than a move
       // with lower score. Note that first entry is always chosen.
-      if (   (RKiss.rand<unsigned>() % sum < e.count)
+      if (   (sum && RKiss.rand<unsigned>() % sum < e.count)
           || (pickBest && e.count == best))
           move = Move(e.move);
   }