jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=fc73405c40653a5fc0166690e3657ffd87069efc

commit fc73405c40653a5fc0166690e3657ffd87069efc
Author: Jean-Philippe Andre <[email protected]>
Date:   Mon Sep 9 13:57:45 2013 +0900

    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 0444741..fc7982d 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 a5e49da..845107e 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 8d12e69..c0ed575 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);

-- 


Reply via email to