X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=selector.git;a=blobdiff_plain;f=selector.c;h=eb8e22ff3cb73093c20b7b3c998026834999ba86;hp=d4ddb27af2e50683f5c362ef8e435773ca1beb5e;hb=d91fa6b4c3833c1b6d5ad3019bf83979f71aee27;hpb=c12e106a918136ed474eca04d9bcf592d2324d5d diff --git a/selector.c b/selector.c index d4ddb27..eb8e22f 100644 --- a/selector.c +++ b/selector.c @@ -214,6 +214,8 @@ void usage(FILE *out) { /* A quick and dirty hash table */ +#define MAGIC_HASH_MULTIPLIER 387433 + /* The table itself stores indexes of the strings taken in a char** table. When a string is added, if it was already in the table, the new index replaces the previous one. */ @@ -256,11 +258,11 @@ int add_and_get_previous_index(struct hash_table_t *hash_table, int k; /* This is my recipe. I checked, it seems to work (as long as - hash_table->size is not a multiple of 387433 that should be - okay) */ + hash_table->size is not a multiple of MAGIC_HASH_MULTIPLIER that + should be okay) */ for(k = 0; new_string[k]; k++) { - code = code * 387433 + (unsigned int) (new_string[k]); + code = code * MAGIC_HASH_MULTIPLIER + (unsigned int) (new_string[k]); } code = code % hash_table->size;