hashtable_policy.h (_Prime_rehash_policy::_S_n_primes): Delete.
authorFrançois Dumont <fdumont@gcc.gnu.org>
Thu, 30 Apr 2015 07:13:37 +0000 (07:13 +0000)
committerFrançois Dumont <fdumont@gcc.gnu.org>
Thu, 30 Apr 2015 07:13:37 +0000 (07:13 +0000)
2015-04-30  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/hashtable_policy.h (_Prime_rehash_policy::_S_n_primes):
Delete.
* src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
Remove usage of latter and compute size of the prime numbers array
locally.

From-SVN: r222611

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/hashtable_policy.h
libstdc++-v3/src/c++11/hashtable_c++0x.cc

index 5b509f79cf24a0b0d30c7ca33b8922fd580feac7..02b07ac0a9e750e7fa1274dfba5cbcd1ca1ddd44 100644 (file)
@@ -1,3 +1,11 @@
+2015-04-30  François Dumont  <fdumont@gcc.gnu.org>
+
+       * include/bits/hashtable_policy.h (_Prime_rehash_policy::_S_n_primes):
+       Delete.
+       * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
+       Remove usage of latter and compute size of the prime numbers array
+       locally.
+
 2015-04-29  Doug Evans  <dje@google.com>
 
        PR libstdc++/65839
index 14bcca6562c4bbeb58bec3c5bd5eb430b7c170fd..a9ad7dd89f6f3bf8c55a07e407989a09a1d51042 100644 (file)
@@ -495,8 +495,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     _M_reset(_State __state)
     { _M_next_resize = __state; }
 
-    enum { _S_n_primes = sizeof(unsigned long) != 8 ? 256 : 256 + 48 };
-
     static const std::size_t _S_growth_factor = 2;
 
     float              _M_max_load_factor;
index 22de51bba0ffc80789271212986e94391f72ce3b..69f999f5cd5a39dd676409a2e2bd3d010a759d76 100644 (file)
@@ -56,8 +56,10 @@ namespace __detail
        return __fast_bkt[__n];
       }
 
+    constexpr auto __n_primes
+      = sizeof(__prime_list) / sizeof(unsigned long) - 1;
     const unsigned long* __next_bkt =
-      std::lower_bound(__prime_list + 5, __prime_list + _S_n_primes, __n);
+      std::lower_bound(__prime_list + 5, __prime_list + __n_primes, __n);
     _M_next_resize =
       __builtin_ceil(*__next_bkt * (long double)_M_max_load_factor);
     return *__next_bkt;