diff --git a/src/tt.cpp b/src/tt.cpp index 8918e515..20ac1608 100644 --- a/src/tt.cpp +++ b/src/tt.cpp @@ -55,18 +55,18 @@ void TranspositionTable::set_size(size_t mbSize) { size_t newSize = 1024; - // Transposition table consists of clusters and - // each cluster consists of ClusterSize number of TTEntries. - // Each non-empty entry contains information of exactly one position. - // newSize is the number of clusters we are going to allocate. - while ((2 * newSize) * sizeof(TTCluster) <= (mbSize << 20)) + // Transposition table consists of clusters and each cluster consists + // of ClusterSize number of TTEntries. Each non-empty entry contains + // information of exactly one position and newSize is the number of + // clusters we are going to allocate. + while (2ULL * newSize * sizeof(TTCluster) <= (mbSize << 20)) newSize *= 2; if (newSize != size) { size = newSize; delete [] entries; - entries = new TTCluster[size]; + entries = new (std::nothrow) TTCluster[size]; if (!entries) { std::cerr << "Failed to allocate " << mbSize diff --git a/src/tt.h b/src/tt.h index 94ee78e7..c37b9d3f 100644 --- a/src/tt.h +++ b/src/tt.h @@ -46,7 +46,7 @@ class SimpleHash { public: SimpleHash() { - entries = new Entry[HashSize]; + entries = new (std::nothrow) Entry[HashSize]; if (!entries) { std::cerr << "Failed to allocate " << HashSize * sizeof(Entry)