]> granicus.if.org Git - libass/commitdiff
Add cache statistics
authorGrigori Goronzy <greg@blackbox>
Tue, 7 Jun 2011 16:45:18 +0000 (18:45 +0200)
committerGrigori Goronzy <greg@blackbox>
Tue, 7 Jun 2011 16:45:40 +0000 (18:45 +0200)
libass/ass_cache.c
libass/ass_cache.h

index c656a9e041ba94dac84c43e230e6faf72c633225..e6dae0af7fd466d0b28a4bc4c37d653fa01dd3e5 100644 (file)
@@ -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);
index 01cf4ad5c96421d42d08e7722169515ea004bbf9..68449cf6e884df2a37674963b40e3eb53ba2caff 100644 (file)
@@ -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);