From fc73405c40653a5fc0166690e3657ffd87069efc Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Mon, 9 Sep 2013 13:57:45 +0900 Subject: [PATCH] evas/cserve2: Add cache hit count on image data --- src/lib/evas/cache2/evas_cache2.c | 5 ++++- src/lib/evas/cserve2/evas_cs2_image_data.c | 9 +++++++++ src/lib/evas/cserve2/evas_cs2_private.h | 2 ++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/cache2/evas_cache2.c b/src/lib/evas/cache2/evas_cache2.c index 0444741289..fc7982d5ba 100644 --- a/src/lib/evas/cache2/evas_cache2.c +++ b/src/lib/evas/cache2/evas_cache2.c @@ -982,7 +982,10 @@ evas_cache2_image_load_data(Image_Entry *ie) int error = EVAS_LOAD_ERROR_NONE; if ((ie->flags.loaded) && (!ie->animated.animated)) - return error; + { + evas_cserve2_image_hit(ie); + return EVAS_LOAD_ERROR_NONE; + } ie->flags.in_progress = EINA_TRUE; diff --git a/src/lib/evas/cserve2/evas_cs2_image_data.c b/src/lib/evas/cserve2/evas_cs2_image_data.c index a5e49da396..845107e55b 100644 --- a/src/lib/evas/cserve2/evas_cs2_image_data.c +++ b/src/lib/evas/cserve2/evas_cs2_image_data.c @@ -20,4 +20,13 @@ evas_cserve2_image_data_get(Image_Entry *ie) return dentry->shm.data; } +unsigned int +evas_cserve2_image_hit(Image_Entry *ie) +{ + Data_Entry *dentry = ie->data2; + + if (!dentry) return 0; + return ++dentry->hit_count; +} + #endif diff --git a/src/lib/evas/cserve2/evas_cs2_private.h b/src/lib/evas/cserve2/evas_cs2_private.h index 8d12e693c7..c0ed575f81 100644 --- a/src/lib/evas/cserve2/evas_cs2_private.h +++ b/src/lib/evas/cserve2/evas_cs2_private.h @@ -14,6 +14,7 @@ typedef struct _Shared_Buffer Shared_Buffer; struct _Data_Entry { unsigned int image_id; + unsigned int hit_count; void (*preloaded_cb)(void *, Eina_Bool); struct { const char *path; @@ -81,6 +82,7 @@ Eina_Bool evas_cserve2_image_preload(Image_Entry *ie, void (*preloaded_cb)(void void evas_cserve2_dispatch(void); void *evas_cserve2_image_data_get(Image_Entry *ie); +unsigned int evas_cserve2_image_hit(Image_Entry *ie); Font_Entry *evas_cserve2_font_load(const char *source, const char *name, int size, int dpi, Font_Rend_Flags wanted_rend); EAPI int evas_cserve2_font_load_wait(Font_Entry *fe);