# HG changeset patch # User Timo Sirainen # Date 1030415296 -10800 # Node ID e399e33d033dca9e6bc929357dffef550e873eb8 # Parent 526284657da7af6f1fd8f8d4c57e7b2d5a227df8 Changed behaviour of primes_closest() to return given number back if it's a prime itself. diff -r 526284657da7 -r e399e33d033d src/lib/hash.c --- a/src/lib/hash.c Tue Aug 27 05:27:05 2002 +0300 +++ b/src/lib/hash.c Tue Aug 27 05:28:16 2002 +0300 @@ -314,7 +314,7 @@ (nodes_per_list < 3.0 || table->size >= HASH_TABLE_MAX_SIZE)) return FALSE; - new_size = CLAMP(primes_closest(table->nodes_count), + new_size = CLAMP(primes_closest(table->nodes_count+1), HASH_TABLE_MIN_SIZE, HASH_TABLE_MAX_SIZE); diff -r 526284657da7 -r e399e33d033d src/lib/primes.c --- a/src/lib/primes.c Tue Aug 27 05:27:05 2002 +0300 +++ b/src/lib/primes.c Tue Aug 27 05:28:16 2002 +0300 @@ -72,7 +72,7 @@ unsigned int i; for (i = 0; i < primes_count; i++) - if (primes[i] > num) + if (primes[i] >= num) return primes[i]; return primes[primes_count - 1]; diff -r 526284657da7 -r e399e33d033d src/lib/primes.h --- a/src/lib/primes.h Tue Aug 27 05:27:05 2002 +0300 +++ b/src/lib/primes.h Tue Aug 27 05:28:16 2002 +0300 @@ -1,6 +1,8 @@ #ifndef __PRIMES_H #define __PRIMES_H +/* Returns a prime close to specified number, or the number itself if it's + a prime. Note that the returned value may be smaller than requested! */ unsigned int primes_closest(unsigned int num); #endif