summaryrefslogtreecommitdiffstats
path: root/libass
diff options
context:
space:
mode:
authorrcombs <rcombs@rcombs.me>2021-02-28 01:11:18 -0600
committerOneric <oneric@oneric.stub>2021-10-15 22:53:29 +0200
commit64bf6eec1d04db790c39316aeec2d6b7bcec05f5 (patch)
tree92709a98c90bcc5bc2c4ee563bfa57f52e08566c /libass
parent359a0673ad37fef2c8419dc6ab6c1f4f6c8a954b (diff)
downloadlibass-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.c10
-rw-r--r--libass/ass_cache.h3
-rw-r--r--libass/ass_cache_template.h6
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; \