]> git.sesse.net Git - stockfish/blobdiff - src/tt.h
Don't allocate MAX_THREADS hash tables if not necessary
[stockfish] / src / tt.h
index daa66c333e3488c8428a406680e9f73438a58f10..69cdad0c17dc19f19d351a36e0b79faf5e696700 100644 (file)
--- a/src/tt.h
+++ b/src/tt.h
@@ -142,19 +142,20 @@ inline void TranspositionTable::refresh(const TTEntry* tte) const {
 /// Without cluster concept or overwrite policy.
 
 template<class Entry, int HashSize>
-class SimpleHash {
+struct SimpleHash {
 
-  SimpleHash(const SimpleHash&);
-  SimpleHash& operator=(const SimpleHash&);
+  typedef SimpleHash<Entry, HashSize> Base;
 
-public:
-  SimpleHash() {
+  void init() {
+
+    if (entries)
+        return;
 
     entries = new (std::nothrow) Entry[HashSize];
     if (!entries)
     {
         std::cerr << "Failed to allocate " << HashSize * sizeof(Entry)
-                  << " bytes for material hash table." << std::endl;
+                  << " bytes for hash table." << std::endl;
         exit(EXIT_FAILURE);
     }
     memset(entries, 0, HashSize * sizeof(Entry));