xserver: Branch 'master' - 2 commits

Michel Daenzer daenzer at kemper.freedesktop.org
Mon Oct 22 09:29:20 PDT 2007


 GL/glx/glxcmds.c |    5 +++++
 GL/glx/glxext.c  |    4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)

New commits:
commit fbe19c66c36acfb484809111cf02579a3baf2f0f
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Mon Oct 22 18:28:03 2007 +0200

    GLX: Fix leak of X pixmaps associated with GLX pixmaps.

diff --git a/GL/glx/glxcmds.c b/GL/glx/glxcmds.c
index ac2393c..992ddbc 100644
--- a/GL/glx/glxcmds.c
+++ b/GL/glx/glxcmds.c
@@ -1215,6 +1215,11 @@ static int DoDestroyDrawable(__GLXclientState *cl, XID glxdrawable, int type)
 	    return __glXError(GLXBadPbuffer);
 	}
     }
+
+    if (type == GLX_DRAWABLE_PIXMAP) {
+	((PixmapPtr) pGlxDraw->pDraw)->refcnt--;
+    }
+
     FreeResource(glxdrawable, FALSE);
 
     return Success;
commit c6d36b1cee44a9cbb690dff62a4683d7f6fbf30c
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Mon Oct 22 18:28:03 2007 +0200

    GLX: Don't crash on unused client array members when switching to/from console.

diff --git a/GL/glx/glxext.c b/GL/glx/glxext.c
index 4d6bfd7..546d87f 100644
--- a/GL/glx/glxext.c
+++ b/GL/glx/glxext.c
@@ -393,7 +393,7 @@ void glxSuspendClients(void)
     int i;
 
     for (i = 1; i < currentMaxClients; i++) {
-	if (glxGetClient(clients[i])->inUse)
+	if (clients[i] && glxGetClient(clients[i])->inUse)
 	    IgnoreClient(clients[i]);
     }
 
@@ -408,7 +408,7 @@ void glxResumeClients(void)
     glxBlockClients = FALSE;
 
     for (i = 1; i < currentMaxClients; i++) {
-	if (glxGetClient(clients[i])->inUse)
+	if (clients[i] && glxGetClient(clients[i])->inUse)
 	    AttendClient(clients[i]);
     }
 


More information about the xorg-commit mailing list