summaryrefslogtreecommitdiff
path: root/libihash
diff options
context:
space:
mode:
Diffstat (limited to 'libihash')
-rw-r--r--libihash/ihash.c3
-rw-r--r--libihash/ihash.h7
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;