summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrcombs <rcombs@rcombs.me>2022-07-26 12:41:19 -0500
committerrcombs <rcombs@rcombs.me>2023-02-18 20:36:59 -0600
commite254aa766ce415a2cd0650c49f5ea4476ad98a03 (patch)
tree1d1a9198009450a7c55c92c513edb70751d0b2ca
parentf9504ff7fb58d202f6ce566d13d9e9b5568528b0 (diff)
downloadlibass-e254aa766ce415a2cd0650c49f5ea4476ad98a03.tar.bz2
libass-e254aa766ce415a2cd0650c49f5ea4476ad98a03.tar.xz
ass_cache: charge byte-based caches for the CacheItem
-rw-r--r--libass/ass_cache.c6
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)