From: Subhransu Mohanty Date: Wed, 19 Oct 2016 06:02:01 +0000 (+0900) Subject: evas/engine: don't store output as surface_cache data. X-Git-Tag: accepted/tizen/common/20161020.173508~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=baa56058bb9a056b656149099b597d03fd7957c8;p=platform%2Fupstream%2Fefl.git evas/engine: don't store output as surface_cache data. Change-Id: Ibb851a31d1a1533a580525583b87dc083206a21b --- diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h index 3c4e6cf..94d336f 100755 --- a/src/lib/evas/include/evas_private.h +++ b/src/lib/evas/include/evas_private.h @@ -535,7 +535,6 @@ struct _Ector_Surface_Data { void *key; // vg tree pointer void *surface; // engine image - void *output; }; struct _Ector_Surface_Cache diff --git a/src/modules/evas/engines/gl_generic/evas_engine.c b/src/modules/evas/engines/gl_generic/evas_engine.c index e77623b..fe0815d 100644 --- a/src/modules/evas/engines/gl_generic/evas_engine.c +++ b/src/modules/evas/engines/gl_generic/evas_engine.c @@ -2571,7 +2571,7 @@ _ector_surface_cache_init(void) // eina_hash_free(surface_cache->surface_hash); // EINA_LIST_FREE(surface_cache->lru_list, data) // { -// eng_image_free(data->output, data->surface); +// evas_gl_common_image_free(data->surface); // free(data); // } // free(surface_cache); @@ -2584,20 +2584,20 @@ eng_ector_surface_cache_set(void *data, void *key, void *surface) { Ector_Surface_Data *surface_data = NULL; int count; + _ector_surface_cache_init(); surface_data = calloc(1, sizeof(Ector_Surface_Data)); surface_data->key = key; surface_data->surface = surface; - surface_data->output = data; eina_hash_add(surface_cache->surface_hash, &key, surface_data); surface_cache->lru_list = eina_list_prepend(surface_cache->lru_list, surface_data); count = eina_list_count(surface_cache->lru_list); - if (count > 50) + if (count > 100) { surface_data = eina_list_data_get(eina_list_last(surface_cache->lru_list)); eina_hash_del(surface_cache->surface_hash, &surface_data->key, surface_data); surface_cache->lru_list = eina_list_remove_list(surface_cache->lru_list, eina_list_last(surface_cache->lru_list)); - eng_image_free(surface_data->output, surface_data->surface); + evas_gl_common_image_free(surface_data->surface); free(surface_data); } } @@ -2616,7 +2616,7 @@ eng_ector_surface_cache_get(void *data EINA_UNUSED, void *key) { if (lru_data == surface_data) { - surface_cache->lru_list = eina_list_demote_list(surface_cache->lru_list, l); + surface_cache->lru_list = eina_list_promote_list(surface_cache->lru_list, l); break; } } diff --git a/src/modules/evas/engines/software_generic/evas_engine.c b/src/modules/evas/engines/software_generic/evas_engine.c index a716cac..e48c206 100644 --- a/src/modules/evas/engines/software_generic/evas_engine.c +++ b/src/modules/evas/engines/software_generic/evas_engine.c @@ -3943,7 +3943,7 @@ _ector_surface_cache_dump(void) eina_hash_free(surface_cache->surface_hash); EINA_LIST_FREE(surface_cache->lru_list, data) { - eng_image_free(data->output, data->surface); + eng_image_free(NULL, data->surface); free(data); } free(surface_cache); @@ -3962,16 +3962,15 @@ eng_ector_surface_cache_set(void *data, void *key, void *surface) surface_data->key = key; surface_data->surface = surface; - surface_data->output = data; eina_hash_add(surface_cache->surface_hash, &key, surface_data); surface_cache->lru_list = eina_list_prepend(surface_cache->lru_list, surface_data); count = eina_list_count(surface_cache->lru_list); - if (count > 50) + if (count > 100) { surface_data = eina_list_data_get(eina_list_last(surface_cache->lru_list)); eina_hash_del(surface_cache->surface_hash, &surface_data->key, surface_data); surface_cache->lru_list = eina_list_remove_list(surface_cache->lru_list, eina_list_last(surface_cache->lru_list)); - eng_image_free(surface_data->output, surface_data->surface); + eng_image_free(NULL, surface_data->surface); free(surface_data); } } @@ -3990,7 +3989,7 @@ eng_ector_surface_cache_get(void *data EINA_UNUSED, void *key) { if (lru_data == surface_data) { - surface_cache->lru_list = eina_list_demote_list(surface_cache->lru_list, l); + surface_cache->lru_list = eina_list_promote_list(surface_cache->lru_list, l); break; } }