From 3d4bb3851ce2e7144ee6981dfa7edee7ece171f7 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 14 Jul 2017 18:43:06 -0400 Subject: [PATCH] ecore-evas: make the window_get apis return null without errors on failure the normal usage of these is something like if (!strcmp(engine, my_engine)) win = window_get(ee); which is a waste of effort since the window_get() functions all check the engine interface internally --- src/lib/ecore_evas/ecore_evas.c | 39 +++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/src/lib/ecore_evas/ecore_evas.c b/src/lib/ecore_evas/ecore_evas.c index c3feb3fc28..6fde09b5e5 100644 --- a/src/lib/ecore_evas/ecore_evas.c +++ b/src/lib/ecore_evas/ecore_evas.c @@ -432,8 +432,8 @@ _ecore_evas_cursors_init(Ecore_Evas *ee) return EINA_TRUE; } -EAPI Ecore_Evas_Interface * -_ecore_evas_interface_get(const Ecore_Evas *ee, const char *iname) +static Ecore_Evas_Interface * +_ecore_evas_interface_get_internal(const Ecore_Evas *ee, const char *iname, Eina_Bool cri) { Eina_List *l; Ecore_Evas_Interface *i; @@ -443,16 +443,23 @@ _ecore_evas_interface_get(const Ecore_Evas *ee, const char *iname) EINA_LIST_FOREACH(ee->engine.ifaces, l, i) { - if (!strcmp(i->name, iname)) - return i; + if (!strcmp(i->name, iname)) + return i; } - CRI("Ecore_Evas %p (engine: %s) does not have interface '%s'", - ee, ee->driver, iname); + if (cri) + CRI("Ecore_Evas %p (engine: %s) does not have interface '%s'", + ee, ee->driver, iname); return NULL; } +EAPI Ecore_Evas_Interface * +_ecore_evas_interface_get(const Ecore_Evas *ee, const char *iname) +{ + return _ecore_evas_interface_get_internal(ee, iname, 1); +} + /** * Query if a particular rendering engine target has support * @param engine The engine to check support for @@ -3831,8 +3838,8 @@ EAPI Ecore_X_Window ecore_evas_software_x11_window_get(const Ecore_Evas *ee) { Ecore_Evas_Interface_Software_X11 *iface; - iface = (Ecore_Evas_Interface_Software_X11 *)_ecore_evas_interface_get(ee, "software_x11"); - EINA_SAFETY_ON_NULL_RETURN_VAL(iface, 0); + iface = (Ecore_Evas_Interface_Software_X11 *)_ecore_evas_interface_get_internal(ee, "software_x11", 0); + if (!iface) return 0; return iface->window_get(ee); } @@ -3980,8 +3987,8 @@ EAPI Ecore_X_Window ecore_evas_gl_x11_window_get(const Ecore_Evas *ee) { Ecore_Evas_Interface_Gl_X11 *iface; - iface = (Ecore_Evas_Interface_Gl_X11 *)_ecore_evas_interface_get(ee, "gl_x11"); - EINA_SAFETY_ON_NULL_RETURN_VAL(iface, 0); + iface = (Ecore_Evas_Interface_Gl_X11 *)_ecore_evas_interface_get_internal(ee, "gl_x11", 0); + if (!iface) return 0; return iface->window_get(ee); } @@ -4413,8 +4420,8 @@ EAPI Ecore_Wl_Window * ecore_evas_wayland_window_get(const Ecore_Evas *ee) { Ecore_Evas_Interface_Wayland *iface; - iface = (Ecore_Evas_Interface_Wayland *)_ecore_evas_interface_get(ee, "wayland"); - EINA_SAFETY_ON_NULL_RETURN_VAL(iface, NULL); + iface = (Ecore_Evas_Interface_Wayland *)_ecore_evas_interface_get_internal(ee, "wayland", 0); + if (!iface) return NULL; return iface->window_get(ee); } @@ -4424,7 +4431,7 @@ ecore_evas_cocoa_window_get(const Ecore_Evas *ee) { Ecore_Evas_Interface_Cocoa *iface; iface = (Ecore_Evas_Interface_Cocoa *)_ecore_evas_interface_get(ee, "opengl_cocoa"); - EINA_SAFETY_ON_NULL_RETURN_VAL(iface, NULL); + if (!iface) return NULL; return iface->window_get(ee); } @@ -4432,8 +4439,8 @@ EAPI Ecore_Wl2_Window * ecore_evas_wayland2_window_get(const Ecore_Evas *ee) { Ecore_Evas_Interface_Wayland *iface; - iface = (Ecore_Evas_Interface_Wayland *)_ecore_evas_interface_get(ee, "wayland"); - EINA_SAFETY_ON_NULL_RETURN_VAL(iface, NULL); + iface = (Ecore_Evas_Interface_Wayland *)_ecore_evas_interface_get_internal(ee, "wayland", 0); + if (!iface) return NULL; return iface->window2_get(ee); } @@ -4535,7 +4542,7 @@ ecore_evas_win32_window_get(const Ecore_Evas *ee) { Ecore_Evas_Interface_Win32 *iface; iface = (Ecore_Evas_Interface_Win32 *)_ecore_evas_interface_get(ee, "win32"); - EINA_SAFETY_ON_NULL_RETURN_VAL(iface, NULL); + if (!iface) return NULL; return iface->window_get(ee); }