From 4fd74e766ae0992f08b525cd935fb7c5bbf6e24c Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Thu, 15 May 2014 17:55:45 +0200 Subject: [PATCH 03/16] libihash: add hurd_ihash_value_valid * libihash/ihash.h (hurd_ihash_value_valid): New function. * libihash/ihash.c (index_empty): Use hurd_ihash_value_valid. --- libihash/ihash.c | 3 +-- libihash/ihash.h | 7 +++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/libihash/ihash.c b/libihash/ihash.c index 4d9cc18..5b7b542 100644 --- a/libihash/ihash.c +++ b/libihash/ihash.c @@ -50,8 +50,7 @@ murmur3_mix32 (uint32_t h, unsigned int bits) 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 345630d..394bcf9 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; -- 2.0.0.rc0