summaryrefslogtreecommitdiff
path: root/cogl
diff options
context:
space:
mode:
authorAdel Gadllah <adel.gadllah@gmail.com>2015-07-26 11:27:00 +0200
committerAdel Gadllah <adel.gadllah@gmail.com>2015-07-26 16:04:14 +0200
commit4f8254f1ae74c9be3cb3153cc1e9c0604c103758 (patch)
tree8b202d358be778ab62b1dea218b2b809205b2488 /cogl
parent853a9b6e4904c897c17d675d764d69b1708f7824 (diff)
downloadmutter-4f8254f1ae74c9be3cb3153cc1e9c0604c103758.tar.gz
winsys-glx: Add error traps in create_context
Both create_gl3_context and glXCreateNewContext can fail with an X error. https://bugzilla.gnome.org/show_bug.cgi?id=742678
Diffstat (limited to 'cogl')
-rw-r--r--cogl/winsys/cogl-winsys-glx.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/cogl/winsys/cogl-winsys-glx.c b/cogl/winsys/cogl-winsys-glx.c
index ae35c6afe..44138732b 100644
--- a/cogl/winsys/cogl-winsys-glx.c
+++ b/cogl/winsys/cogl-winsys-glx.c
@@ -1075,6 +1075,8 @@ create_context (CoglDisplay *display, CoglError **error)
COGL_NOTE (WINSYS, "Creating GLX Context (display: %p)",
xlib_renderer->xdpy);
+ _cogl_xlib_renderer_trap_errors (display->renderer, &old_state);
+
if (display->renderer->driver == COGL_DRIVER_GL3)
glx_display->glx_context = create_gl3_context (display, config);
else
@@ -1085,7 +1087,8 @@ create_context (CoglDisplay *display, CoglError **error)
NULL,
True);
- if (glx_display->glx_context == NULL)
+ if (_cogl_xlib_renderer_untrap_errors (display->renderer, &old_state) ||
+ glx_display->glx_context == NULL)
{
_cogl_set_error (error, COGL_WINSYS_ERROR,
COGL_WINSYS_ERROR_CREATE_CONTEXT,