From b542050fa0f26f756ce7ba1900bf31fccb99a028 Mon Sep 17 00:00:00 2001 From: Daniel James Date: Sun, 16 Dec 2007 11:06:16 +0000 Subject: [PATCH] Remove hard-coded length of prime numbers. [SVN r42101] --- include/boost/unordered/detail/hash_table.hpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/include/boost/unordered/detail/hash_table.hpp b/include/boost/unordered/detail/hash_table.hpp index 5d373d5c..355afedf 100644 --- a/include/boost/unordered/detail/hash_table.hpp +++ b/include/boost/unordered/detail/hash_table.hpp @@ -82,17 +82,21 @@ namespace boost { // no throw inline std::size_t next_prime(std::size_t n) { + std::size_t const* const prime_list_end = prime_list + + sizeof(prime_list) / sizeof(*prime_list); std::size_t const* bound = - std::lower_bound(prime_list,prime_list + 28, n); - if(bound == prime_list + 28) + std::lower_bound(prime_list,prime_list_end, n); + if(bound == prime_list_end) bound--; return *bound; } // no throw inline std::size_t prev_prime(std::size_t n) { + std::size_t const* const prime_list_end = prime_list + + sizeof(prime_list) / sizeof(*prime_list); std::size_t const* bound = - std::upper_bound(prime_list,prime_list + 28, n); + std::upper_bound(prime_list,prime_list_end, n); if(bound != prime_list) bound--; return *bound;