diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-12-07 21:44:48 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-12-07 21:44:48 +0000 |
commit | 8d9b53d6baf2be693383dbf559396cb1e1616187 (patch) | |
tree | 8562cb3cf2e2fd85134ed5fb1dfc7a3b97c65dac | |
parent | 82d1a71afff67b0004291be4091d8a00d0dfa79e (diff) |
Simplify simple method to find next hashtable size.
-rw-r--r-- | vespalib/src/vespa/vespalib/stllike/hashtable.cpp | 23 | ||||
-rw-r--r-- | vespalib/src/vespa/vespalib/stllike/hashtable.h | 6 |
2 files changed, 6 insertions, 23 deletions
diff --git a/vespalib/src/vespa/vespalib/stllike/hashtable.cpp b/vespalib/src/vespa/vespalib/stllike/hashtable.cpp index 52639fd6275..1b62149d96e 100644 --- a/vespalib/src/vespa/vespalib/stllike/hashtable.cpp +++ b/vespalib/src/vespa/vespalib/stllike/hashtable.cpp @@ -14,19 +14,6 @@ static const unsigned long __stl_prime_list[] = 402653189ul, 805306457ul, 1610612741ul, 3221225473ul, 4294967291ul }; -static const unsigned long __simple_modulator_list[] = -{ - 0x8ul, - 0x10ul, 0x20ul, 0x40ul, 0x80ul, - 0x100ul, 0x200ul, 0x400ul, 0x800ul, - 0x1000ul, 0x2000ul, 0x4000ul, 0x8000ul, - 0x10000ul, 0x20000ul, 0x40000ul, 0x80000ul, - 0x100000ul, 0x200000ul, 0x400000ul, 0x800000ul, - 0x1000000ul, 0x2000000ul, 0x4000000ul, 0x8000000ul, - 0x10000000ul, 0x20000000ul, 0x40000000ul, 0x80000000ul, - 0x100000000ul -}; - } namespace vespalib { @@ -41,15 +28,9 @@ hashtable_base::getModulo(size_t newSize, const unsigned long * list, size_t sz) } size_t -hashtable_base::getModuloStl(size_t newSize) -{ - return getModulo(newSize, __stl_prime_list, sizeof(__stl_prime_list)/sizeof(__stl_prime_list[0])); -} - -size_t -hashtable_base::getModuloSimple(size_t newSize) +hashtable_base::getModuloStl(size_t size) { - return getModulo(newSize, __simple_modulator_list, sizeof(__simple_modulator_list)/sizeof(__simple_modulator_list[0])); + return getModulo(size, __stl_prime_list, sizeof(__stl_prime_list)/sizeof(__stl_prime_list[0])); } } diff --git a/vespalib/src/vespa/vespalib/stllike/hashtable.h b/vespalib/src/vespa/vespalib/stllike/hashtable.h index 8c9d36e86ad..4e1f14843cc 100644 --- a/vespalib/src/vespa/vespalib/stllike/hashtable.h +++ b/vespalib/src/vespa/vespalib/stllike/hashtable.h @@ -79,8 +79,10 @@ public: private: next_t _mask; }; - static size_t getModuloStl(size_t newSize); - static size_t getModuloSimple(size_t newSize); + static size_t getModuloStl(size_t size); + static size_t getModuloSimple(size_t size) { + return std::max(size_t(8), roundUp2inN(size)); + } protected: struct DefaultMoveHandler { |