DRI2: Don't leave empty entries in private->buffers
This should fix bug #21130.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit de1e43181b
)
This commit is contained in:
parent
d7277296ed
commit
aa13faef2b
|
@ -361,7 +361,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);
|
||||
|
@ -375,23 +375,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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user