From 129f09dbb28181c254d74cf8aac98daeee744244 Mon Sep 17 00:00:00 2001 From: "Dr.Smile" Date: Mon, 21 Sep 2015 02:57:42 +0300 Subject: cache: keep referenced cache values alive after ass_cache_empty() --- libass/ass_cache.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'libass/ass_cache.h') diff --git a/libass/ass_cache.h b/libass/ass_cache.h index cd725333..687c1971 100644 --- a/libass/ass_cache.h +++ b/libass/ass_cache.h @@ -103,9 +103,17 @@ typedef struct { BitmapRef *bitmaps; } CompositeHashKey; -Cache *ass_cache_create(HashFunction hash_func, HashCompare compare_func, - CacheKeyMove copy_func, CacheItemDestructor destruct_func, - size_t key_size, size_t value_size); +typedef struct +{ + HashFunction hash_func; + HashCompare compare_func; + CacheKeyMove key_move_func; + CacheItemDestructor destruct_func; + size_t key_size; + size_t value_size; +} CacheDesc; + +Cache *ass_cache_create(const CacheDesc *desc); bool ass_cache_get(Cache *cache, void *key, void *value_ptr); void *ass_cache_key(void *value); void ass_cache_commit(void *value, size_t item_size); -- cgit v1.2.3