summaryrefslogtreecommitdiff
path: root/src/mesa/swrast/s_drawpix.c
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2007-12-18 14:51:42 -0800
committerEric Anholt <eric@anholt.net>2007-12-18 14:51:42 -0800
commit9efa1029e5a2ee90e3265d9959730685ce841b66 (patch)
treee68469effaa5dfcd8f8029eee02d800cfa19c277 /src/mesa/swrast/s_drawpix.c
parent4878f12189c52e1cafe9240183d0e371a1f287d3 (diff)
Fix mismatched map/unmap of buffers in swrast read/drawpixels error paths.
Diffstat (limited to 'src/mesa/swrast/s_drawpix.c')
-rw-r--r--src/mesa/swrast/s_drawpix.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/mesa/swrast/s_drawpix.c b/src/mesa/swrast/s_drawpix.c
index 0cf425e1c6..969787381c 100644
--- a/src/mesa/swrast/s_drawpix.c
+++ b/src/mesa/swrast/s_drawpix.c
@@ -842,7 +842,8 @@ _swrast_DrawPixels( GLcontext *ctx,
format, type, pixels)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glDrawPixels(invalid PBO access)");
- goto end;
+ RENDER_FINISH(swrast, ctx);
+ return;
}
buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
GL_READ_ONLY_ARB,
@@ -850,7 +851,8 @@ _swrast_DrawPixels( GLcontext *ctx,
if (!buf) {
/* buffer is already mapped - that's an error */
_mesa_error(ctx, GL_INVALID_OPERATION, "glDrawPixels(PBO is mapped)");
- goto end;
+ RENDER_FINISH(swrast, ctx);
+ return;
}
pixels = ADD_POINTERS(buf, pixels);
}
@@ -890,8 +892,6 @@ _swrast_DrawPixels( GLcontext *ctx,
/* don't return yet, clean-up */
}
-end:
-
RENDER_FINISH(swrast,ctx);
if (unpack->BufferObj->Name) {