From 268d9984b4708bb18f9d84bd221a674f09d16048 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Fri, 25 Aug 2017 10:47:03 -0700 Subject: [PATCH] evas: engine should not access Evas canvas directly. --- src/lib/evas/canvas/evas_main.c | 2 +- src/lib/evas/canvas/evas_out.c | 4 ++-- src/lib/evas/include/evas_private.h | 4 ++-- src/modules/evas/engines/buffer/evas_engine.c | 8 ++++---- src/modules/evas/engines/drm/evas_engine.c | 4 ++-- src/modules/evas/engines/eglfs/evas_engine.c | 4 ++-- src/modules/evas/engines/fb/evas_engine.c | 4 ++-- src/modules/evas/engines/gl_cocoa/evas_engine.c | 4 ++-- src/modules/evas/engines/gl_drm/evas_engine.c | 4 ++-- src/modules/evas/engines/gl_sdl/evas_engine.c | 4 ++-- src/modules/evas/engines/gl_x11/evas_engine.c | 4 ++-- src/modules/evas/engines/psl1ght/evas_engine.c | 4 ++-- src/modules/evas/engines/software_ddraw/evas_engine.c | 4 ++-- src/modules/evas/engines/software_gdi/evas_engine.c | 4 ++-- src/modules/evas/engines/software_x11/evas_engine.c | 4 ++-- src/modules/evas/engines/wayland_egl/evas_engine.c | 2 +- src/modules/evas/engines/wayland_shm/evas_engine.c | 6 +++--- 17 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/lib/evas/canvas/evas_main.c b/src/lib/evas/canvas/evas_main.c index 114e12fdd5..a30a853f37 100644 --- a/src/lib/evas/canvas/evas_main.c +++ b/src/lib/evas/canvas/evas_main.c @@ -1044,7 +1044,7 @@ evas_output_method_set(Evas *eo_e, int render_method) Eina_List *l; EINA_LIST_FOREACH(e->outputs, l, output) - output->info = e->engine.func->info(eo_e); + if (!output->info) output->info = e->engine.func->info(); } // Wayland/drm already handles seats. diff --git a/src/lib/evas/canvas/evas_out.c b/src/lib/evas/canvas/evas_out.c index d66fb0f396..5310d28f5c 100644 --- a/src/lib/evas/canvas/evas_out.c +++ b/src/lib/evas/canvas/evas_out.c @@ -40,7 +40,7 @@ efl_canvas_output_add(Evas *canvas) // right away to setup the info structure if (e->engine.func->info) { - r->info = e->engine.func->info(canvas); + r->info = e->engine.func->info(); } return r; @@ -62,7 +62,7 @@ efl_canvas_output_del(Efl_Canvas_Output *output) output->ector); e->engine.func->output_free(_evas_engine_context(e), output->output); - e->engine.func->info_free(output->canvas, output->info); + e->engine.func->info_free(output->info); } e->outputs = eina_list_remove(e->outputs, output); diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h index af5a08318f..294dfb57b1 100644 --- a/src/lib/evas/include/evas_private.h +++ b/src/lib/evas/include/evas_private.h @@ -1393,8 +1393,8 @@ struct _Evas_Object_Func struct _Evas_Func { - void *(*info) (Evas *e); - void (*info_free) (Evas *e, void *info); + void *(*info) (void); + void (*info_free) (void *info); void *(*setup) (void *engine, void *info, unsigned int w, unsigned int h); int (*update) (void *engine, void *data, void *info, unsigned int w, unsigned int h); diff --git a/src/modules/evas/engines/buffer/evas_engine.c b/src/modules/evas/engines/buffer/evas_engine.c index 0ad83cfd78..cb5867e85f 100644 --- a/src/modules/evas/engines/buffer/evas_engine.c +++ b/src/modules/evas/engines/buffer/evas_engine.c @@ -22,8 +22,8 @@ typedef Render_Engine_Software_Generic Render_Engine; /* prototypes we will use here */ static void *_output_setup(int w, int h, void *dest_buffer, int dest_buffer_row_bytes, int depth_type, int use_color_key, int alpha_threshold, int color_key_r, int color_key_g, int color_key_b, void *(*new_update_region) (int x, int y, int w, int h, int *row_bytes), void (*free_update_region) (int x, int y, int w, int h, void *data), void *(*switch_buffer) (void *data, void *dest_buffer), void *switch_data); -static void *eng_info(Evas *eo_e EINA_UNUSED); -static void eng_info_free(Evas *eo_e EINA_UNUSED, void *info); +static void *eng_info(void); +static void eng_info_free(void *info); static void eng_output_free(void *engine EINA_UNUSED, void *data); /* internal engine routines */ @@ -108,7 +108,7 @@ _output_setup(int w, /* engine api this module provides */ static void * -eng_info(Evas *eo_e EINA_UNUSED) +eng_info(void) { Evas_Engine_Info_Buffer *info; info = calloc(1, sizeof(Evas_Engine_Info_Buffer)); @@ -119,7 +119,7 @@ eng_info(Evas *eo_e EINA_UNUSED) } static void -eng_info_free(Evas *eo_e EINA_UNUSED, void *info) +eng_info_free(void *info) { Evas_Engine_Info_Buffer *in; in = (Evas_Engine_Info_Buffer *)info; diff --git a/src/modules/evas/engines/drm/evas_engine.c b/src/modules/evas/engines/drm/evas_engine.c index 7d01407c8f..77c183bdba 100644 --- a/src/modules/evas/engines/drm/evas_engine.c +++ b/src/modules/evas/engines/drm/evas_engine.c @@ -58,7 +58,7 @@ err: } static void * -eng_info(Evas *evas EINA_UNUSED) +eng_info(void) { Evas_Engine_Info_Drm *info; @@ -74,7 +74,7 @@ eng_info(Evas *evas EINA_UNUSED) } static void -eng_info_free(Evas *evas EINA_UNUSED, void *einfo) +eng_info_free(void *einfo) { Evas_Engine_Info_Drm *info; diff --git a/src/modules/evas/engines/eglfs/evas_engine.c b/src/modules/evas/engines/eglfs/evas_engine.c index d6a714be26..f4813ecd17 100644 --- a/src/modules/evas/engines/eglfs/evas_engine.c +++ b/src/modules/evas/engines/eglfs/evas_engine.c @@ -671,7 +671,7 @@ _native_cb_free(void *image) /* engine specific override functions */ static void * -eng_info(Evas *eo_e EINA_UNUSED) +eng_info(void) { Evas_Engine_Info_Eglfs *info; @@ -686,7 +686,7 @@ eng_info(Evas *eo_e EINA_UNUSED) } static void -eng_info_free(Evas *eo_e EINA_UNUSED, void *in) +eng_info_free(void *in) { Evas_Engine_Info_Eglfs *info; diff --git a/src/modules/evas/engines/fb/evas_engine.c b/src/modules/evas/engines/fb/evas_engine.c index 6fb6c9458f..fa1125a235 100644 --- a/src/modules/evas/engines/fb/evas_engine.c +++ b/src/modules/evas/engines/fb/evas_engine.c @@ -62,7 +62,7 @@ _output_setup(int w, int h, int rot, int vt, int dev, int refresh) /* engine api this module provides */ static void * -eng_info(Evas *eo_e EINA_UNUSED) +eng_info(void) { Evas_Engine_Info_FB *info; info = calloc(1, sizeof(Evas_Engine_Info_FB)); @@ -73,7 +73,7 @@ eng_info(Evas *eo_e EINA_UNUSED) } static void -eng_info_free(Evas *eo_e EINA_UNUSED, void *info) +eng_info_free(void *info) { Evas_Engine_Info_FB *in; in = (Evas_Engine_Info_FB *)info; diff --git a/src/modules/evas/engines/gl_cocoa/evas_engine.c b/src/modules/evas/engines/gl_cocoa/evas_engine.c index 4ae938c6e7..5a6be9b5f5 100644 --- a/src/modules/evas/engines/gl_cocoa/evas_engine.c +++ b/src/modules/evas/engines/gl_cocoa/evas_engine.c @@ -127,7 +127,7 @@ static const EVGL_Interface evgl_funcs = static void * -eng_info(Evas *e EINA_UNUSED) +eng_info(void) { Evas_Engine_Info_GL_Cocoa *info; @@ -142,7 +142,7 @@ eng_info(Evas *e EINA_UNUSED) } static void -eng_info_free(Evas *e EINA_UNUSED, void *info) +eng_info_free(void *info) { Evas_Engine_Info_GL_Cocoa *const in = info; free(in); diff --git a/src/modules/evas/engines/gl_drm/evas_engine.c b/src/modules/evas/engines/gl_drm/evas_engine.c index f4dbed8494..0b0b191a10 100644 --- a/src/modules/evas/engines/gl_drm/evas_engine.c +++ b/src/modules/evas/engines/gl_drm/evas_engine.c @@ -892,7 +892,7 @@ _native_cb_free(void *image) /* engine specific override functions */ static void * -eng_info(Evas *eo_e EINA_UNUSED) +eng_info(void) { Evas_Engine_Info_GL_Drm *info; @@ -907,7 +907,7 @@ eng_info(Evas *eo_e EINA_UNUSED) } static void -eng_info_free(Evas *eo_e EINA_UNUSED, void *in) +eng_info_free(void *in) { Evas_Engine_Info_GL_Drm *info; diff --git a/src/modules/evas/engines/gl_sdl/evas_engine.c b/src/modules/evas/engines/gl_sdl/evas_engine.c index ecf9e52d25..951f346aec 100644 --- a/src/modules/evas/engines/gl_sdl/evas_engine.c +++ b/src/modules/evas/engines/gl_sdl/evas_engine.c @@ -268,7 +268,7 @@ static const EVGL_Interface evgl_funcs = static void * -eng_info(Evas *e EINA_UNUSED) +eng_info(void) { Evas_Engine_Info_GL_SDL *info; @@ -279,7 +279,7 @@ eng_info(Evas *e EINA_UNUSED) } static void -eng_info_free(Evas *e EINA_UNUSED, void *info) +eng_info_free(void *info) { Evas_Engine_Info_GL_SDL *in; in = (Evas_Engine_Info_GL_SDL *)info; diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c b/src/modules/evas/engines/gl_x11/evas_engine.c index 27b74ebb5d..e07c470c50 100644 --- a/src/modules/evas/engines/gl_x11/evas_engine.c +++ b/src/modules/evas/engines/gl_x11/evas_engine.c @@ -1550,7 +1550,7 @@ int _evas_engine_GL_X11_log_dom = -1; static Evas_Func func, pfunc; static void * -eng_info(Evas *eo_e EINA_UNUSED) +eng_info(void) { Evas_Engine_Info_GL_X11 *info; @@ -1564,7 +1564,7 @@ eng_info(Evas *eo_e EINA_UNUSED) } static void -eng_info_free(Evas *eo_e EINA_UNUSED, void *info) +eng_info_free(void *info) { Evas_Engine_Info_GL_X11 *in; // dont free! why bother? its not worth it diff --git a/src/modules/evas/engines/psl1ght/evas_engine.c b/src/modules/evas/engines/psl1ght/evas_engine.c index b22d3f2d95..5c9abd2ecf 100644 --- a/src/modules/evas/engines/psl1ght/evas_engine.c +++ b/src/modules/evas/engines/psl1ght/evas_engine.c @@ -99,7 +99,7 @@ _output_setup(int w, int h) /* engine api this module provides */ static void * -eng_info(Evas *e) +eng_info(void) { Evas_Engine_Info_PSL1GHT *info; @@ -115,7 +115,7 @@ eng_info(Evas *e) } static void -eng_info_free(Evas *e EINA_UNUSED, void *info) +eng_info_free(void *info) { Evas_Engine_Info_PSL1GHT *in; diff --git a/src/modules/evas/engines/software_ddraw/evas_engine.c b/src/modules/evas/engines/software_ddraw/evas_engine.c index 7772320b2f..cdb0aa6dc9 100644 --- a/src/modules/evas/engines/software_ddraw/evas_engine.c +++ b/src/modules/evas/engines/software_ddraw/evas_engine.c @@ -67,7 +67,7 @@ _output_setup(int width, /* engine api this module provides */ static void * -eng_info(Evas *e EINA_UNUSED) +eng_info(void) { Evas_Engine_Info_Software_DDraw *info; @@ -79,7 +79,7 @@ eng_info(Evas *e EINA_UNUSED) } static void -eng_info_free(Evas *e EINA_UNUSED, void *info) +eng_info_free(void *info) { Evas_Engine_Info_Software_DDraw *in; diff --git a/src/modules/evas/engines/software_gdi/evas_engine.c b/src/modules/evas/engines/software_gdi/evas_engine.c index 555862a666..34d9a23fb9 100644 --- a/src/modules/evas/engines/software_gdi/evas_engine.c +++ b/src/modules/evas/engines/software_gdi/evas_engine.c @@ -73,7 +73,7 @@ _output_setup(int width, /* engine api this module provides */ static void * -eng_info(Evas *e EINA_UNUSED) +eng_info(void) { Evas_Engine_Info_Software_Gdi *info; info = calloc(1, sizeof(Evas_Engine_Info_Software_Gdi)); @@ -83,7 +83,7 @@ eng_info(Evas *e EINA_UNUSED) } static void -eng_info_free(Evas *e EINA_UNUSED, void *info) +eng_info_free(void *info) { Evas_Engine_Info_Software_Gdi *in; in = (Evas_Engine_Info_Software_Gdi *)info; diff --git a/src/modules/evas/engines/software_x11/evas_engine.c b/src/modules/evas/engines/software_x11/evas_engine.c index 81631c96b9..3bbf716646 100644 --- a/src/modules/evas/engines/software_x11/evas_engine.c +++ b/src/modules/evas/engines/software_x11/evas_engine.c @@ -232,7 +232,7 @@ _symbols(void) /* engine api this module provides */ static void * -eng_info(Evas *eo_e EINA_UNUSED) +eng_info(void) { Evas_Engine_Info_Software_X11 *info; @@ -251,7 +251,7 @@ eng_info(Evas *eo_e EINA_UNUSED) } static void -eng_info_free(Evas *eo_e EINA_UNUSED, void *info) +eng_info_free(void *info) { Evas_Engine_Info_Software_X11 *in; diff --git a/src/modules/evas/engines/wayland_egl/evas_engine.c b/src/modules/evas/engines/wayland_egl/evas_engine.c index 1e329836d4..6b849b3c18 100644 --- a/src/modules/evas/engines/wayland_egl/evas_engine.c +++ b/src/modules/evas/engines/wayland_egl/evas_engine.c @@ -503,7 +503,7 @@ static const EVGL_Interface evgl_funcs = /* engine functions */ static void * -eng_info(Evas *evas EINA_UNUSED) +eng_info(void) { Evas_Engine_Info_Wayland *info; diff --git a/src/modules/evas/engines/wayland_shm/evas_engine.c b/src/modules/evas/engines/wayland_shm/evas_engine.c index fbcab307ec..61044c13c2 100644 --- a/src/modules/evas/engines/wayland_shm/evas_engine.c +++ b/src/modules/evas/engines/wayland_shm/evas_engine.c @@ -103,7 +103,7 @@ _symbols(void) /* ENGINE API FUNCTIONS WE PROVIDE */ static void * -eng_info(Evas *eo_evas EINA_UNUSED) +eng_info(void) { Evas_Engine_Info_Wayland *einfo; @@ -121,8 +121,8 @@ eng_info(Evas *eo_evas EINA_UNUSED) return einfo; } -static void -eng_info_free(Evas *eo_evas EINA_UNUSED, void *info) +static void +eng_info_free(void *info) { Evas_Engine_Info_Wayland *einfo;