Some additional return value checking
diff --git a/clients/window.c b/clients/window.c
index 9ed96be..bc76937 100644
--- a/clients/window.c
+++ b/clients/window.c
@@ -1463,7 +1463,10 @@
return NULL;
}
- eglBindAPI(EGL_OPENGL_API);
+ if (!eglBindAPI(EGL_OPENGL_API)) {
+ fprintf(stderr, "failed to bind api EGL_OPENGL_API\n");
+ return NULL;
+ }
d->ctx = eglCreateContext(d->dpy, NULL, EGL_NO_CONTEXT, NULL);
if (d->ctx == NULL) {
diff --git a/compositor/compositor-drm.c b/compositor/compositor-drm.c
index e843e14..e3e9b6f 100644
--- a/compositor/compositor-drm.c
+++ b/compositor/compositor-drm.c
@@ -339,7 +339,11 @@
return -1;
}
- eglBindAPI(EGL_OPENGL_ES_API);
+ if (!eglBindAPI(EGL_OPENGL_ES_API)) {
+ fprintf(stderr, "failed to bind api EGL_OPENGL_ES_API\n");
+ return -1;
+ }
+
ec->base.context = eglCreateContext(ec->base.display, NULL,
EGL_NO_CONTEXT, context_attribs);
if (ec->base.context == NULL) {
diff --git a/compositor/compositor-x11.c b/compositor/compositor-x11.c
index f6e705b..3f6d842 100644
--- a/compositor/compositor-x11.c
+++ b/compositor/compositor-x11.c
@@ -80,19 +80,21 @@
};
-static void
+static int
x11_input_create(struct x11_compositor *c)
{
struct x11_input *input;
input = malloc(sizeof *input);
if (input == NULL)
- return;
+ return -1;
memset(input, 0, sizeof *input);
wlsc_input_device_init(&input->base, &c->base);
c->base.input_device = &input->base;
+
+ return 0;
}
@@ -247,7 +249,11 @@
return -1;
}
- eglBindAPI(EGL_OPENGL_ES_API);
+ if (!eglBindAPI(EGL_OPENGL_ES_API)) {
+ fprintf(stderr, "failed to bind EGL_OPENGL_ES_API\n");
+ return -1;
+ }
+
c->base.context = eglCreateContext(c->base.display, NULL,
EGL_NO_CONTEXT, context_attribs);
if (c->base.context == NULL) {
@@ -661,15 +667,17 @@
c->base.wl_display = display;
if (x11_compositor_init_egl(c) < 0)
- return NULL;
+ return NULL;
/* Can't init base class until we have a current egl context */
if (wlsc_compositor_init(&c->base, display) < 0)
return NULL;
- x11_compositor_create_output(c, width, height);
+ if (x11_compositor_create_output(c, width, height) < 0)
+ return NULL;
- x11_input_create(c);
+ if (x11_input_create(c) < 0)
+ return NULL;
loop = wl_display_get_event_loop(c->base.wl_display);