xserver: Branch 'master'

Alan Hourihane alanh at kemper.freedesktop.org
Wed Feb 27 09:06:39 PST 2008


 GL/glx/glxdri.c |   11 +++++++++++
 1 file changed, 11 insertions(+)

New commits:
commit 41aea6194bd29ab34cc166b3fd90eee64299ddf8
Author: Alan Hourihane <alanh at tungstengraphics.com>
Date:   Wed Feb 27 17:06:27 2008 +0000

    More checking for failed contexts/drawables

diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c
index 613ac05..f9b28e4 100644
--- a/GL/glx/glxdri.c
+++ b/GL/glx/glxdri.c
@@ -653,6 +653,9 @@ __glXDRIscreenCreateContext(__GLXscreen *baseScreen,
 					   &context->driContext);
 
     if (context->driContext.private == NULL) {
+    	__glXenterServer(GL_FALSE);
+	retval = DRIDestroyContext(baseScreen->pScreen, context->hwContextID);
+    	__glXleaveServer(GL_FALSE);
 	xfree(context);
 	return NULL;
     }
@@ -703,6 +706,14 @@ __glXDRIscreenCreateDrawable(__GLXscreen *screen,
 						 &private->driDrawable,
 						 hwDrawable, 0, NULL);
 
+    if (private->driDrawable.private == NULL) {
+	__glXenterServer(GL_FALSE);
+	DRIDestroyDrawable(screen->pScreen, serverClient, pDraw);
+	__glXleaveServer(GL_FALSE);
+	xfree(private);
+	return NULL;
+    }
+
     return &private->base;
 }
 


More information about the xorg-commit mailing list