From 55973f2f5a666b3a9d05598a60191205a7e69fa2 Mon Sep 17 00:00:00 2001 From: Darxus Date: Mon, 22 Nov 2010 21:24:39 -0500 Subject: [PATCH] Some additional return value checking --- clients/window.c | 5 ++++- compositor/compositor-drm.c | 6 +++++- compositor/compositor-x11.c | 20 ++++++++++++++------ 3 files changed, 23 insertions(+), 8 deletions(-) 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 @@ display_create(int *argc, char **argv[], const GOptionEntry *option_entries) 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 @@ init_egl(struct drm_compositor *ec, struct udev_device *device) 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 @@ struct x11_input { }; -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 @@ x11_compositor_init_egl(struct x11_compositor *c) 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 @@ x11_compositor_create(struct wl_display *display, int width, int height) 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); -- 2.7.4