diff options
author | rcombs <rcombs@rcombs.me> | 2022-07-26 12:41:19 -0500 |
---|---|---|
committer | rcombs <rcombs@rcombs.me> | 2023-02-18 20:36:59 -0600 |
commit | e254aa766ce415a2cd0650c49f5ea4476ad98a03 (patch) | |
tree | 1d1a9198009450a7c55c92c513edb70751d0b2ca | |
parent | f9504ff7fb58d202f6ce566d13d9e9b5568528b0 (diff) | |
download | libass-e254aa766ce415a2cd0650c49f5ea4476ad98a03.tar.bz2 libass-e254aa766ce415a2cd0650c49f5ea4476ad98a03.tar.xz |
ass_cache: charge byte-based caches for the CacheItem
-rw-r--r-- | libass/ass_cache.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libass/ass_cache.c b/libass/ass_cache.c index a5c8575..0efba07 100644 --- a/libass/ass_cache.c +++ b/libass/ass_cache.c @@ -408,7 +408,7 @@ void *ass_cache_get(Cache *cache, void *key, void *priv) item->queue_next = NULL; item->ref_count = 2; - cache->cache_size += item->size; + cache->cache_size += item->size + (item->size == 1 ? 0 : CACHE_ITEM_SIZE); cache->items++; return value; } @@ -452,7 +452,7 @@ void ass_cache_dec_ref(void *value) *item->prev = item->next; cache->items--; - cache->cache_size -= item->size; + cache->cache_size -= item->size + (item->size == 1 ? 0 : CACHE_ITEM_SIZE); } destroy_item(item->desc, item); } @@ -479,7 +479,7 @@ void ass_cache_cut(Cache *cache, size_t max_size) *item->prev = item->next; cache->items--; - cache->cache_size -= item->size; + cache->cache_size -= item->size + (item->size == 1 ? 0 : CACHE_ITEM_SIZE); destroy_item(cache->desc, item); } while (cache->cache_size > max_size); if (cache->queue_first) |