summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrigori Goronzy <greg@blackbox>2011-06-07 18:45:18 +0200
committerGrigori Goronzy <greg@blackbox>2011-06-07 18:45:40 +0200
commit1a57533be4c4298edae0ca06f3984b48c6ec5e4f (patch)
tree303c8fc6386a515b154cf3562637e1c50a9273f5
parent988166104ed0cc6c27edee8ca60fbd549369d13c (diff)
downloadlibass-1a57533be4c4298edae0ca06f3984b48c6ec5e4f.tar.bz2
libass-1a57533be4c4298edae0ca06f3984b48c6ec5e4f.tar.xz
Add cache statistics
-rw-r--r--libass/ass_cache.c15
-rw-r--r--libass/ass_cache.h3
2 files changed, 8 insertions, 10 deletions
diff --git a/libass/ass_cache.c b/libass/ass_cache.c
index c656a9e..e6dae0a 100644
--- a/libass/ass_cache.c
+++ b/libass/ass_cache.c
@@ -259,20 +259,17 @@ size_t ass_cache_empty(Cache *cache, size_t max_size)
return 0;
}
-char *ass_cache_stats(Cache *cache)
+void ass_cache_stats(Cache *cache, size_t *size, unsigned *hits,
+ unsigned *misses, unsigned *count)
{
- // FIXME: implement this correctly
- printf("cache statistics: \n total accesses: %d\n hits: %d\n "
- "misses: %d\n object count: %d\n size: %zd\n",
- cache->hits + cache->misses, cache->hits,
- cache->misses, cache->items, cache->cache_size);
-
- return "not implemented";
+ *size = cache->cache_size;
+ *hits = cache->hits;
+ *misses = cache->misses;
+ *count = cache->items;
}
void ass_cache_done(Cache *cache)
{
- ass_cache_stats(cache);
ass_cache_empty(cache, 0);
free(cache->map);
free(cache);
diff --git a/libass/ass_cache.h b/libass/ass_cache.h
index 01cf4ad..68449cf 100644
--- a/libass/ass_cache.h
+++ b/libass/ass_cache.h
@@ -61,7 +61,8 @@ Cache *ass_cache_create(HashFunction hash_func, HashCompare compare_func,
void *ass_cache_put(Cache *cache, void *key, void *value);
void *ass_cache_get(Cache *cache, void *key);
size_t ass_cache_empty(Cache *cache, size_t max_size);
-char *ass_cache_stats(Cache *cache);
+void ass_cache_stats(Cache *cache, size_t *size, unsigned *hits,
+ unsigned *misses, unsigned *count);
void ass_cache_done(Cache *cache);
Cache *ass_font_cache_create(void);
Cache *ass_glyph_cache_create(void);