aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/efl_wl
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2018-01-16 18:37:15 -0500
committerMike Blumenkrantz <zmike@osg.samsung.com>2018-01-16 18:38:25 -0500
commit17b0db9ed39e6a203c93a5b44760c7eb72087186 (patch)
tree01a5b6a7793822025c3de5850b70ce4688b769d7 /src/lib/efl_wl
parentefl_ui_focus_manager: fix infinit loop in enlightenment wizard (diff)
downloadefl-17b0db9ed39e6a203c93a5b44760c7eb72087186.tar.gz
efl-wl: add lots of null checks to egl init
Diffstat (limited to 'src/lib/efl_wl')
-rw-r--r--src/lib/efl_wl/efl_wl.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/src/lib/efl_wl/efl_wl.c b/src/lib/efl_wl/efl_wl.c
index 40667cabf9..814e3cbe2f 100644
--- a/src/lib/efl_wl/efl_wl.c
+++ b/src/lib/efl_wl/efl_wl.c
@@ -3985,10 +3985,12 @@ seat_destroy(Comp_Seat *s)
static void
comp_gl_shutdown(Comp *c)
{
- if (c->glapi->evasglUnbindWaylandDisplay)
+ if (c->glapi && c->glapi->evasglUnbindWaylandDisplay)
c->glapi->evasglUnbindWaylandDisplay(c->gl, c->display);
- evas_gl_surface_destroy(c->gl, c->glsfc);
- evas_gl_context_destroy(c->gl, c->glctx);
+ if (c->glsfc)
+ evas_gl_surface_destroy(c->gl, c->glsfc);
+ if (c->glctx)
+ evas_gl_context_destroy(c->gl, c->glctx);
evas_gl_free(c->gl);
evas_gl_config_free(c->glcfg);
c->glsfc = NULL;
@@ -4001,13 +4003,18 @@ static void
comp_gl_init(Comp *c)
{
c->glctx = evas_gl_context_create(c->gl, NULL);
+ if (!c->glctx) goto end;
c->glcfg = evas_gl_config_new();
+ if (!c->glcfg) goto end;
c->glsfc = evas_gl_surface_create(c->gl, c->glcfg, 1, 1);
- evas_gl_make_current(c->gl, c->glsfc, c->glctx);
+ if (!c->glsfc) goto end;
+ if (!evas_gl_make_current(c->gl, c->glsfc, c->glctx)) goto end;
c->glapi = evas_gl_context_api_get(c->gl, c->glctx);
- if ((!c->glapi->evasglBindWaylandDisplay) ||
- (!c->glapi->evasglBindWaylandDisplay(c->gl, c->display)))
- comp_gl_shutdown(c);
+ if (c->glapi->evasglBindWaylandDisplay &&
+ c->glapi->evasglBindWaylandDisplay(c->gl, c->display))
+ return;
+end:
+ comp_gl_shutdown(c);
}
static void