From: J. Ali Harlow Date: Fri, 17 Apr 2009 22:08:11 +0000 (+0100) Subject: Make 0 a valid hashtable value consistently (and 0xFFFFFFFF invalid). X-Git-Tag: 0.1~20 X-Git-Url: http://project.juiblex.co.uk/git/?a=commitdiff_plain;h=b474829ef7638d5493c22a677b1c3a542b32dc2a;p=razor2.git%2F.git Make 0 a valid hashtable value consistently (and 0xFFFFFFFF invalid). --- diff --git a/librazor/types.c b/librazor/types.c index 9c2814f..72c63d5 100644 --- a/librazor/types.c +++ b/librazor/types.c @@ -180,14 +180,14 @@ hashtable_lookup(struct hashtable *table, const char *key) for (i = 0; i < table->buckets.alloc; i += sizeof *b) { b = table->buckets.data + ((start + i) & mask); - if (*b == 0) - return 0; + if (*b == 0xFFFFFFFF) + return 0xFFFFFFFF; if (strcmp(key, &pool[*b]) == 0) return *b; } - return 0; + return 0xFFFFFFFF; } static void @@ -203,7 +203,7 @@ do_insert(struct hashtable *table, uint32_t value) for (i = 0; i < table->buckets.alloc; i += sizeof *b) { b = table->buckets.data + ((start + i) & mask); - if (*b == 0) { + if (*b == 0xFFFFFFFF) { *b = value; break; } @@ -233,11 +233,11 @@ hashtable_insert(struct hashtable *table, const char *key) array_add(&table->buckets, 4 * sizeof *buckets); if (alloc != table->buckets.alloc) { end = table->buckets.data + alloc; - memset(end, 0, table->buckets.alloc - alloc); + memset(end, 0xFF, table->buckets.alloc - alloc); for (b = table->buckets.data; b < end; b++) { value = *b; - if (value != 0) { - *b = 0; + if (value != 0xFFFFFFFF) { + *b = 0xFFFFFFFF; do_insert(table, value); } } @@ -258,7 +258,7 @@ hashtable_tokenize(struct hashtable *table, const char *string) string = ""; token = hashtable_lookup(table, string); - if (token != 0) + if (token != 0xFFFFFFFF) return token; return hashtable_insert(table, string);