xserver: Branch 'master'

Ian Romanick idr at kemper.freedesktop.org
Wed Apr 15 11:15:23 PDT 2009


 glx/glxdri2.c |   17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

New commits:
commit de1e43181bd670877b994db221ad8a04b5d63324
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Wed Apr 15 11:13:48 2009 -0700

    DRI2: Don't leave empty entries in private->buffers
    
    This should fix bug #21130.
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>

diff --git a/glx/glxdri2.c b/glx/glxdri2.c
index 9dac8a6..9e452c4 100644
--- a/glx/glxdri2.c
+++ b/glx/glxdri2.c
@@ -408,7 +408,7 @@ dri2GetBuffers(__DRIdrawable *driDrawable,
     __GLXDRIdrawable *private = loaderPrivate;
     DRI2BufferPtr buffers;
     int i;
-    int skip = 0;
+    int j;
 
     buffers = DRI2GetBuffers(private->base.pDraw,
 			     width, height, attachments, count, out_count);
@@ -422,23 +422,24 @@ dri2GetBuffers(__DRIdrawable *driDrawable,
 
     /* This assumes the DRI2 buffer attachment tokens matches the
      * __DRIbuffer tokens. */
+    j = 0;
     for (i = 0; i < *out_count; i++) {
 	/* Do not send the real front buffer of a window to the client.
 	 */
 	if ((private->base.pDraw->type == DRAWABLE_WINDOW)
 	    && (buffers[i].attachment == DRI2BufferFrontLeft)) {
-	    skip++;
 	    continue;
 	}
 
-	private->buffers[i].attachment = buffers[i].attachment;
-	private->buffers[i].name = buffers[i].name;
-	private->buffers[i].pitch = buffers[i].pitch;
-	private->buffers[i].cpp = buffers[i].cpp;
-	private->buffers[i].flags = buffers[i].flags;
+	private->buffers[j].attachment = buffers[i].attachment;
+	private->buffers[j].name = buffers[i].name;
+	private->buffers[j].pitch = buffers[i].pitch;
+	private->buffers[j].cpp = buffers[i].cpp;
+	private->buffers[j].flags = buffers[i].flags;
+	j++;
     }
 
-    *out_count -= skip;
+    *out_count = j;
     return private->buffers;
 }
 


More information about the xorg-commit mailing list