diff options
-rw-r--r-- | libihash/ihash.c | 3 | ||||
-rw-r--r-- | libihash/ihash.h | 7 |
2 files changed, 8 insertions, 2 deletions
diff --git a/libihash/ihash.c b/libihash/ihash.c index fa29257b..74e9eddd 100644 --- a/libihash/ihash.c +++ b/libihash/ihash.c @@ -37,8 +37,7 @@ static inline int index_empty (hurd_ihash_t ht, unsigned int idx) { - return ht->items[idx].value == _HURD_IHASH_EMPTY - || ht->items[idx].value == _HURD_IHASH_DELETED; + return ! hurd_ihash_value_valid (ht->items[idx].value); } diff --git a/libihash/ihash.h b/libihash/ihash.h index 849a55a2..128027a0 100644 --- a/libihash/ihash.h +++ b/libihash/ihash.h @@ -41,6 +41,13 @@ typedef void *hurd_ihash_value_t; #define _HURD_IHASH_EMPTY ((hurd_ihash_value_t) 0) #define _HURD_IHASH_DELETED ((hurd_ihash_value_t) -1) +/* Test if VALUE is valid. */ +static inline int +hurd_ihash_value_valid (hurd_ihash_value_t value) +{ + return value != _HURD_IHASH_EMPTY && value != _HURD_IHASH_DELETED; +} + /* The type of integer we want to use for the keys. */ typedef uintptr_t hurd_ihash_key_t; |