From bf5829a614f0e2500e694cbf74e3398724d2180e Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Fri, 29 Jul 2011 06:20:55 +0000 Subject: [PATCH] make sure we complain enough on stderr about enignes not being found by ecore-evas. improved error handling, though not really a bug. SVN revision: 61878 --- .../src/lib/ecore_evas/ecore_evas_directfb.c | 8 +++++ .../ecore/src/lib/ecore_evas/ecore_evas_fb.c | 8 +++++ .../ecore/src/lib/ecore_evas/ecore_evas_sdl.c | 22 ++++++++++++++ .../src/lib/ecore_evas/ecore_evas_win32.c | 30 +++++++++++++++++++ .../src/lib/ecore_evas/ecore_evas_wince.c | 12 ++++++++ .../ecore/src/lib/ecore_evas/ecore_evas_x.c | 13 ++++++++ 6 files changed, 93 insertions(+) diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_directfb.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_directfb.c index 7b33293b70..94ff51a3e6 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_directfb.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_directfb.c @@ -545,8 +545,16 @@ ecore_evas_directfb_new(const char *disp_name, int windowed, int x, int y, int w if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo)) { ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver); + ecore_evas_free(ee); + return NULL; } } + else + { + ERR("evas_engine_info_set() init engine '%s' failed.", ee->driver); + ecore_evas_free(ee); + return NULL; + } ee->engine.func->fn_render = _ecore_evas_directfb_render; _ecore_evas_register(ee); diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_fb.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_fb.c index 579a5ea409..8c650402fe 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_fb.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_fb.c @@ -656,8 +656,16 @@ ecore_evas_fb_new(const char *disp_name, int rotation, int w, int h) if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo)) { ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver); + ecore_evas_free(ee); + return NULL; } } + else + { + ERR("evas_engine_info_set() init engine '%s' failed.", ee->driver); + ecore_evas_free(ee); + return NULL; + } evas_key_modifier_add(ee->evas, "Shift"); evas_key_modifier_add(ee->evas, "Control"); evas_key_modifier_add(ee->evas, "Alt"); diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_sdl.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_sdl.c index 1e34a2b7d1..9a2048fb7e 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_sdl.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_sdl.c @@ -398,8 +398,16 @@ _ecore_evas_internal_sdl_new(int rmethod, const char* name, int w, int h, int fu if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo)) { ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver); + ecore_evas_free(ee); + return NULL; } } + else + { + ERR("evas_engine_info_set() init engine '%s' failed.", ee->driver); + ecore_evas_free(ee); + return NULL; + } #endif } else if (rmethod == evas_render_method_lookup("gl_sdl")) @@ -413,10 +421,24 @@ _ecore_evas_internal_sdl_new(int rmethod, const char* name, int w, int h, int fu if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo)) { ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver); + ecore_evas_free(ee); + return NULL; } } + else + { + ERR("evas_engine_info_set() init engine '%s' failed.", ee->driver); + ecore_evas_free(ee); + return NULL; + } #endif } + else + { + ERR("evas_engine_info_set() init engine '%s' failed.", ee->driver); + ecore_evas_free(ee); + return NULL; + } if (!ecore_sdl_init(name)) { diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_win32.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_win32.c index 703513adc8..edf458a48d 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_win32.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_win32.c @@ -966,8 +966,14 @@ _ecore_evas_engine_software_gdi_init(Ecore_Evas *ee) if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo)) { ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver); + return 0; } } + else + { + ERR("evas_engine_info_set() init engine '%s' failed.", ee->driver); + return 0; + } return 1; } @@ -1000,8 +1006,14 @@ _ecore_evas_engine_software_ddraw_init(Ecore_Evas *ee) if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo)) { ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver); + return 0; } } + else + { + ERR("evas_engine_info_set() init engine '%s' failed.", ee->driver); + return 0; + } return 1; } @@ -1034,8 +1046,14 @@ _ecore_evas_engine_direct3d_init(Ecore_Evas *ee) if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo)) { ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver); + return 0; } } + else + { + ERR("evas_engine_info_set() init engine '%s' failed.", ee->driver); + return 0; + } return 1; } @@ -1067,8 +1085,14 @@ _ecore_evas_engine_opengl_glew_init(Ecore_Evas *ee) if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo)) { ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver); + return 0; } } + else + { + ERR("evas_engine_info_set() init engine '%s' failed.", ee->driver); + return 0; + } return 1; } @@ -1104,8 +1128,14 @@ _ecore_evas_engine_software_16_ddraw_init(Ecore_Evas *ee) if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo)) { ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver); + return 0; } } + else + { + ERR("evas_engine_info_set() init engine '%s' failed.", ee->driver); + return 0; + } return 1; } diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_wince.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_wince.c index ba0fd88403..0a871558c4 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_wince.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_wince.c @@ -812,12 +812,24 @@ ecore_evas_software_wince_new_internal(int backend, if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo)) { ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver); + _ecore_evas_wince_shutdown(); + free(ee); + ecore_wince_shutdown(); + return NULL; } ecore_wince_window_backend_set((Ecore_WinCE_Window *)ee->prop.window, backend); ecore_wince_window_suspend_cb_set((Ecore_WinCE_Window *)ee->prop.window, einfo->func.suspend); ecore_wince_window_resume_cb_set((Ecore_WinCE_Window *)ee->prop.window, einfo->func.resume); } + else + { + ERR("evas_engine_info_set() init engine '%s' failed.", ee->driver); + _ecore_evas_wince_shutdown(); + free(ee); + ecore_wince_shutdown(); + return NULL; + } ee->engine.func->fn_render = _ecore_evas_wince_render; _ecore_evas_register(ee); diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c index aa6cfaac3e..1869b76c99 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c @@ -3183,6 +3183,7 @@ ecore_evas_gl_x11_options_new(const char *disp_name, Ecore_X_Window parent, (ee, ee->engine.x.win_root, x, y, w, h, 0, 0, opt); if (!ee->prop.window) { + ERR("evas_engine_info_set() init engine '%s' failed.", ee->driver); ecore_evas_free(ee); return NULL; } @@ -3519,6 +3520,12 @@ ecore_evas_software_x11_16_new(const char *disp_name, Ecore_X_Window parent, return NULL; } } + else + { + ERR("evas_engine_info_set() init engine '%s' failed.", ee->driver); + ecore_evas_free(ee); + return NULL; + } ecore_x_icccm_hints_set(ee->prop.window, 1 /* accepts_focus */, @@ -3837,6 +3844,12 @@ ecore_evas_software_x11_8_new(const char *disp_name, Ecore_X_Window parent, return NULL; } } + else + { + ERR("evas_engine_info_set() init engine '%s' failed.", ee->driver); + ecore_evas_free(ee); + return NULL; + } ecore_x_icccm_hints_set(ee->prop.window, 1 /* accepts_focus */,