jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b5c9350805e350f7d7e5b0daeb8b02a5fc42b456
commit b5c9350805e350f7d7e5b0daeb8b02a5fc42b456 Author: Jean-Philippe Andre <jp.an...@samsung.com> Date: Thu Jul 2 12:04:02 2015 +0900 Evas: Replace image_map_surface_free by common image_free Those two functions were doing exactly the same thing[1], which is free an image, so this commit only attempts to simplify the code a little bit. [1] Actually image_map_surface_free() might even not have worked properly with cserve2 sw (calling unload instead of close). --- src/lib/evas/canvas/evas_canvas3d_texture.c | 6 ++---- src/lib/evas/canvas/evas_clip.c | 3 +-- src/lib/evas/canvas/evas_map.c | 4 ++-- src/lib/evas/canvas/evas_object_image.c | 6 +++--- src/lib/evas/canvas/evas_object_main.c | 8 ++++---- src/lib/evas/canvas/evas_render.c | 16 ++++++++-------- src/lib/evas/include/evas_private.h | 1 - src/modules/evas/engines/gl_cocoa/evas_engine.c | 7 ------- src/modules/evas/engines/gl_generic/evas_engine.c | 10 ---------- src/modules/evas/engines/software_generic/evas_engine.c | 14 -------------- 10 files changed, 20 insertions(+), 55 deletions(-) diff --git a/src/lib/evas/canvas/evas_canvas3d_texture.c b/src/lib/evas/canvas/evas_canvas3d_texture.c index 51e034f..58c1e28 100644 --- a/src/lib/evas/canvas/evas_canvas3d_texture.c +++ b/src/lib/evas/canvas/evas_canvas3d_texture.c @@ -31,8 +31,7 @@ _texture_proxy_unset(Evas_Canvas3D_Texture_Data *texture) proxy_src->surface != NULL) { Evas_Public_Data *e = src->layer->evas; - e->engine.func->image_map_surface_free(e->engine.data.output, - proxy_src->surface); + e->engine.func->image_free(e->engine.data.output, proxy_src->surface); proxy_src->surface = NULL; } @@ -91,8 +90,7 @@ _texture_proxy_subrender(Evas_Canvas3D_Texture *obj) if ((proxy_write->surface) && ((proxy_write->w != w) || (proxy_write->h != h))) { - e->engine.func->image_map_surface_free(e->engine.data.output, - proxy_write->surface); + e->engine.func->image_free(e->engine.data.output, proxy_write->surface); proxy_write->surface = NULL; } diff --git a/src/lib/evas/canvas/evas_clip.c b/src/lib/evas/canvas/evas_clip.c index cf5b1cc..e560a78 100644 --- a/src/lib/evas/canvas/evas_clip.c +++ b/src/lib/evas/canvas/evas_clip.c @@ -201,8 +201,7 @@ _evas_object_clip_mask_unset(Evas_Object_Protected_Data *obj) mask->is_alpha = EINA_FALSE; if (mask->surface) { - obj->layer->evas->engine.func->image_map_surface_free - (obj->layer->evas->engine.data.output, mask->surface); + obj->layer->evas->engine.func->image_free(obj->layer->evas->engine.data.output, mask->surface); mask->surface = NULL; } mask->w = 0; diff --git a/src/lib/evas/canvas/evas_map.c b/src/lib/evas/canvas/evas_map.c index bd7e51b..53c18fc 100644 --- a/src/lib/evas/canvas/evas_map.c +++ b/src/lib/evas/canvas/evas_map.c @@ -494,7 +494,7 @@ _evas_object_map_enable_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Eina_Bo { EINA_COW_WRITE_BEGIN(evas_object_map_cow, obj->map, Evas_Object_Map_Data, map_write) { - obj->layer->evas->engine.func->image_map_surface_free + obj->layer->evas->engine.func->image_free (obj->layer->evas->engine.data.output, map_write->surface); map_write->surface = NULL; @@ -548,7 +548,7 @@ _evas_object_map_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, const Evas_Map { EINA_COW_WRITE_BEGIN(evas_object_map_cow, obj->map, Evas_Object_Map_Data, map_write) { - obj->layer->evas->engine.func->image_map_surface_free + obj->layer->evas->engine.func->image_free (obj->layer->evas->engine.data.output, map_write->surface); map_write->surface = NULL; diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c index e18c58f..221ed08 100644 --- a/src/lib/evas/canvas/evas_object_image.c +++ b/src/lib/evas/canvas/evas_object_image.c @@ -2427,8 +2427,8 @@ _proxy_unset(Evas_Object *proxy, Evas_Object_Protected_Data *cur_proxy, Evas_Ima if (eina_list_count(proxy_source_write->proxies) == 0) { if (proxy_source_write->surface) - cur_proxy->layer->evas->engine.func->image_map_surface_free(cur_proxy->layer->evas->engine.data.output, - proxy_source_write->surface); + cur_proxy->layer->evas->engine.func->image_free(cur_proxy->layer->evas->engine.data.output, + proxy_source_write->surface); proxy_source_write->surface = NULL; proxy_source_write->redraw = EINA_FALSE; } @@ -3172,7 +3172,7 @@ _evas_image_evas_filter_input_render(Eo *eo_obj, Evas_Image_Data *o, if (!input_stolen) { evas_filter_image_draw(filter, context, EVAS_FILTER_BUFFER_INPUT_ID, surface, do_async); - ENFN->image_map_surface_free(output, surface); + ENFN->image_free(output, surface); } else evas_filter_buffer_backing_release(filter, surface); diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c index 8800a04..3de8510 100644 --- a/src/lib/evas/canvas/evas_object_main.c +++ b/src/lib/evas/canvas/evas_object_main.c @@ -179,7 +179,7 @@ evas_object_free(Evas_Object *eo_obj, int clean_layer) { if (obj->layer) { - obj->layer->evas->engine.func->image_map_surface_free + obj->layer->evas->engine.func->image_free (obj->layer->evas->engine.data.output, obj->map->surface); } @@ -196,7 +196,7 @@ evas_object_free(Evas_Object *eo_obj, int clean_layer) mask->w = mask->h = 0; if (mask->surface) { - obj->layer->evas->engine.func->image_map_surface_free + obj->layer->evas->engine.func->image_free (obj->layer->evas->engine.data.output, mask->surface); mask->surface = NULL; } @@ -308,7 +308,7 @@ evas_object_content_change(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj) EINA_COW_WRITE_BEGIN(evas_object_map_cow, obj->map, Evas_Object_Map_Data, map_write) { - obj->layer->evas->engine.func->image_map_surface_free + obj->layer->evas->engine.func->image_free (obj->layer->evas->engine.data.output, map_write->surface); map_write->surface = NULL; } @@ -1323,7 +1323,7 @@ _hide(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj) mask->w = mask->h = 0; if (mask->surface) { - obj->layer->evas->engine.func->image_map_surface_free + obj->layer->evas->engine.func->image_free (obj->layer->evas->engine.data.output, mask->surface); mask->surface = NULL; } diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index 98658d4..dc15572 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -1317,7 +1317,7 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj, RD(level, " new surf: %ix%i\n", sw, sh); EINA_COW_WRITE_BEGIN(evas_object_map_cow, obj->map, Evas_Object_Map_Data, map_write) { - obj->layer->evas->engine.func->image_map_surface_free + obj->layer->evas->engine.func->image_free (e->engine.data.output, map_write->surface); map_write->surface = NULL; } @@ -1518,7 +1518,7 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj, // FIXME: needs to cache these maps and // keep them only rendering updates - // obj->layer->evas->engine.func->image_map_surface_free + // obj->layer->evas->engine.func->image_free // (e->engine.data.output, obj->map->surface); // obj->map->surface = NULL; } @@ -1721,7 +1721,7 @@ evas_render_proxy_subrender(Evas *eo_e, Evas_Object *eo_source, Evas_Object *eo_ if ((proxy_write->surface) && ((proxy_write->w != w) || (proxy_write->h != h))) { - ENFN->image_map_surface_free(ENDT, proxy_write->surface); + ENFN->image_free(ENDT, proxy_write->surface); proxy_write->surface = NULL; } @@ -1879,7 +1879,7 @@ evas_render_mask_subrender(Evas_Public_Data *evas, * (we don't know how to render objects to alpha) */ if (mdata->surface && ((w != mdata->w) || (h != mdata->h) || mdata->is_alpha || mdata->is_scaled)) { - ENFN->image_map_surface_free(ENDT, mdata->surface); + ENFN->image_free(ENDT, mdata->surface); mdata->surface = NULL; } @@ -1942,7 +1942,7 @@ evas_render_mask_subrender(Evas_Public_Data *evas, *alpha = (DATA8) A_VAL(rgba); /* Now we can drop the original surface */ - ENFN->image_map_surface_free(ENDT, mdata->surface); + ENFN->image_free(ENDT, mdata->surface); mdata->surface = alpha_surface; mdata->is_alpha = EINA_TRUE; } @@ -2953,7 +2953,7 @@ _evas_render_dump_map_surfaces(Evas_Object *eo_obj) Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); if ((obj->map->cur.map) && obj->map->surface) { - obj->layer->evas->engine.func->image_map_surface_free + obj->layer->evas->engine.func->image_free (obj->layer->evas->engine.data.output, obj->map->surface); EINA_COW_WRITE_BEGIN(evas_object_map_cow, obj->map, Evas_Object_Map_Data, map_write) map_write->surface = NULL; @@ -2992,7 +2992,7 @@ _evas_canvas_render_dump(Eo *eo_e, Evas_Public_Data *e) { EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, obj->proxy, Evas_Object_Proxy_Data, proxy_write) { - e->engine.func->image_map_surface_free(e->engine.data.output, proxy_write->surface); + e->engine.func->image_free(e->engine.data.output, proxy_write->surface); proxy_write->surface = NULL; } EINA_COW_WRITE_END(evas_object_proxy_cow, obj->proxy, proxy_write); @@ -3001,7 +3001,7 @@ _evas_canvas_render_dump(Eo *eo_e, Evas_Public_Data *e) { EINA_COW_WRITE_BEGIN(evas_object_mask_cow, obj->mask, Evas_Object_Mask_Data, mdata) { - e->engine.func->image_map_surface_free(e->engine.data.output, mdata->surface); + e->engine.func->image_free(e->engine.data.output, mdata->surface); mdata->surface = NULL; } EINA_COW_WRITE_END(evas_object_mask_cow, obj->mask, mdata); diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h index 32e899c..04b59ef 100644 --- a/src/lib/evas/include/evas_private.h +++ b/src/lib/evas/include/evas_private.h @@ -1357,7 +1357,6 @@ struct _Evas_Func Eina_Bool (*image_map_draw) (void *data, void *context, void *surface, void *image, RGBA_Map *m, int smooth, int level, Eina_Bool do_async); void *(*image_map_surface_new) (void *data, int w, int h, int alpha); - void (*image_map_surface_free) (void *data, void *surface); void (*image_map_clean) (void *data, RGBA_Map *m); void *(*image_scaled_update) (void *data, void *scaled, void *image, int dst_w, int dst_h, Eina_Bool smooth, Eina_Bool alpha, Evas_Colorspace cspace); diff --git a/src/modules/evas/engines/gl_cocoa/evas_engine.c b/src/modules/evas/engines/gl_cocoa/evas_engine.c index 06d2f40..2425788 100644 --- a/src/modules/evas/engines/gl_cocoa/evas_engine.c +++ b/src/modules/evas/engines/gl_cocoa/evas_engine.c @@ -811,12 +811,6 @@ eng_image_map_surface_new(void *data EINA_UNUSED, int w, int h, int alpha) } static void -eng_image_map_surface_free(void *data EINA_UNUSED, void *surface) -{ - evas_gl_common_image_free(surface); -} - -static void eng_image_content_hint_set(void *data, void *image, int hint) { Render_Engine *re; @@ -1263,7 +1257,6 @@ module_open(Evas_Module *em) ORD(image_map_draw); ORD(image_map_surface_new); - ORD(image_map_surface_free); ORD(image_content_hint_set); ORD(image_content_hint_get); diff --git a/src/modules/evas/engines/gl_generic/evas_engine.c b/src/modules/evas/engines/gl_generic/evas_engine.c index 3d2271e..ef55214 100644 --- a/src/modules/evas/engines/gl_generic/evas_engine.c +++ b/src/modules/evas/engines/gl_generic/evas_engine.c @@ -1173,15 +1173,6 @@ eng_image_map_surface_new(void *data, int w, int h, int alpha) return evas_gl_common_image_surface_new(gl_context, w, h, alpha); } -static void -eng_image_map_surface_free(void *data, void *surface) -{ - Render_Engine_GL_Generic *re = data; - - re->window_use(re->software.ob); - evas_gl_common_image_free(surface); -} - static void * eng_image_scaled_update(void *data EINA_UNUSED, void *scaled, void *image, int dst_w, int dst_h, @@ -2550,7 +2541,6 @@ module_open(Evas_Module *em) ORD(image_map_draw); ORD(image_map_surface_new); - ORD(image_map_surface_free); ORD(image_map_clean); ORD(image_scaled_update); diff --git a/src/modules/evas/engines/software_generic/evas_engine.c b/src/modules/evas/engines/software_generic/evas_engine.c index 8199ab3..9e3a011 100644 --- a/src/modules/evas/engines/software_generic/evas_engine.c +++ b/src/modules/evas/engines/software_generic/evas_engine.c @@ -2257,19 +2257,6 @@ eng_image_map_surface_new(void *data EINA_UNUSED, int w, int h, int alpha) } static void -eng_image_map_surface_free(void *data EINA_UNUSED, void *surface) -{ -#ifdef EVAS_CSERVE2 - if (evas_cserve2_use_get()) - { - evas_cache2_image_unload_data(surface); - return; - } -#endif - evas_cache_image_drop(surface); -} - -static void eng_image_scale_hint_set(void *data EINA_UNUSED, void *image, int hint) { Image_Entry *im; @@ -3872,7 +3859,6 @@ static Evas_Func func = eng_font_last_up_to_pos, eng_image_map_draw, eng_image_map_surface_new, - eng_image_map_surface_free, eng_image_map_clean, NULL, // eng_image_scaled_get - used for live scaling in GL only (fastpath) NULL, // eng_image_content_hint_set - software doesn't use it --