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 01bd165e32..da1ddbd0c4 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_sdl.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_sdl.c @@ -643,7 +643,7 @@ ecore_evas_gl_sdl_new(const char* name, int w, int h, int fullscreen, int nofram if (!rmethod) return NULL; ee = _ecore_evas_internal_sdl_new(rmethod, name, w, h, fullscreen, 0, noframe, 0); - ee->driver = "gl_sdl"; + if (ee) ee->driver = "gl_sdl"; return ee; } #else diff --git a/legacy/evas/src/modules/engines/gl_sdl/evas_engine.c b/legacy/evas/src/modules/engines/gl_sdl/evas_engine.c index 149eab01c7..f822f3a4f0 100644 --- a/legacy/evas/src/modules/engines/gl_sdl/evas_engine.c +++ b/legacy/evas/src/modules/engines/gl_sdl/evas_engine.c @@ -63,13 +63,17 @@ eng_output_free(void *data) Render_Engine *re; re = (Render_Engine *)data; - evas_gl_common_context_free(re->gl_context); - free(re); - evas_common_font_shutdown(); - evas_common_image_shutdown(); + if (re) + { + evas_gl_common_context_free(re->gl_context); + free(re); - SDL_QuitSubSystem(SDL_INIT_VIDEO); + evas_common_font_shutdown(); + evas_common_image_shutdown(); + + SDL_QuitSubSystem(SDL_INIT_VIDEO); + } } static void