diff options
author | rcombs <rcombs@rcombs.me> | 2021-02-28 01:11:18 -0600 |
---|---|---|
committer | Oneric <oneric@oneric.stub> | 2021-10-15 22:53:29 +0200 |
commit | 64bf6eec1d04db790c39316aeec2d6b7bcec05f5 (patch) | |
tree | 92709a98c90bcc5bc2c4ee563bfa57f52e08566c /libass | |
parent | 359a0673ad37fef2c8419dc6ab6c1f4f6c8a954b (diff) | |
download | libass-64bf6eec1d04db790c39316aeec2d6b7bcec05f5.tar.bz2 libass-64bf6eec1d04db790c39316aeec2d6b7bcec05f5.tar.xz |
cache: give the hash a more generic function name
Diffstat (limited to 'libass')
-rw-r--r-- | libass/ass_cache.c | 10 | ||||
-rw-r--r-- | libass/ass_cache.h | 3 | ||||
-rw-r--r-- | libass/ass_cache_template.h | 6 |
3 files changed, 10 insertions, 9 deletions
diff --git a/libass/ass_cache.c b/libass/ass_cache.c index 6a699b5..83b9588 100644 --- a/libass/ass_cache.c +++ b/libass/ass_cache.c @@ -30,10 +30,10 @@ #include "ass_outline.h" #include "ass_cache.h" -#define FNV1_32A_INIT 0x811c9dc5U +#define ASS_HASH_INIT 0x811c9dc5U #define FNV1_32A_PRIME 16777619U -static inline uint32_t fnv_32a_buf(const void *buf, size_t len, uint32_t hval) +static inline ass_hashcode ass_hash_buf(const void *buf, size_t len, ass_hashcode hval) { if (!len) return hval; @@ -121,7 +121,7 @@ const CacheDesc bitmap_cache_desc = { // composite cache -static uint32_t composite_hash(void *key, uint32_t hval) +static ass_hashcode composite_hash(void *key, ass_hashcode hval) { CompositeHashKey *k = key; hval = filter_hash(&k->filter, hval); @@ -188,7 +188,7 @@ const CacheDesc composite_cache_desc = { // outline cache -static uint32_t outline_hash(void *key, uint32_t hval) +static ass_hashcode outline_hash(void *key, ass_hashcode hval) { OutlineHashKey *k = key; switch (k->type) { @@ -364,7 +364,7 @@ void *ass_cache_get(Cache *cache, void *key, void *priv) { const CacheDesc *desc = cache->desc; size_t key_offs = CACHE_ITEM_SIZE + align_cache(desc->value_size); - unsigned bucket = desc->hash_func(key, FNV1_32A_INIT) % cache->buckets; + unsigned bucket = desc->hash_func(key, ASS_HASH_INIT) % cache->buckets; CacheItem *item = cache->map[bucket]; while (item) { if (desc->compare_func(key, (char *) item + key_offs)) { diff --git a/libass/ass_cache.h b/libass/ass_cache.h index fc2777c..e96956c 100644 --- a/libass/ass_cache.h +++ b/libass/ass_cache.h @@ -26,6 +26,7 @@ #include "ass_bitmap.h" typedef struct cache Cache; +typedef uint32_t ass_hashcode; // cache values @@ -46,7 +47,7 @@ typedef struct { #include "ass_cache_template.h" // Type-specific function pointers -typedef uint32_t (*HashFunction)(void *key, uint32_t hval); +typedef ass_hashcode (*HashFunction)(void *key, ass_hashcode hval); typedef bool (*HashCompare)(void *a, void *b); typedef bool (*CacheKeyMove)(void *dst, void *src); typedef size_t (*CacheValueConstructor)(void *key, void *value, void *priv); diff --git a/libass/ass_cache_template.h b/libass/ass_cache_template.h index 3328d44..fd4cdb6 100644 --- a/libass/ass_cache_template.h +++ b/libass/ass_cache_template.h @@ -32,13 +32,13 @@ #elif defined(CREATE_HASH_FUNCTIONS) #undef CREATE_HASH_FUNCTIONS #define START(funcname, structname) \ - static uint32_t funcname##_hash(void *buf, uint32_t hval) \ + static ass_hashcode funcname##_hash(void *buf, ass_hashcode hval) \ { \ struct structname *p = buf; #define GENERIC(type, member) \ - hval = fnv_32a_buf(&p->member, sizeof(p->member), hval); + hval = ass_hash_buf(&p->member, sizeof(p->member), hval); #define STRING(member) \ - hval = fnv_32a_buf(p->member.str, p->member.len, hval); + hval = ass_hash_buf(p->member.str, p->member.len, hval); #define VECTOR(member) GENERIC(, member.x); GENERIC(, member.y); #define END(typedefname) \ return hval; \ |