mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-23 11:10:10 +01:00
intel: Fix use of freed buffer if glBitmap is called after a swap.
Regions looked up from the framebuffer are invalid after intel_prepare_render(). Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=30266 Tested-by: Thomas Jones <thomas.jones@utoronto.ca>
This commit is contained in:
parent
a7a2704ab4
commit
066bee64e1
1 changed files with 4 additions and 3 deletions
|
|
@ -175,7 +175,7 @@ do_blit_bitmap( struct gl_context *ctx,
|
|||
const GLubyte *bitmap )
|
||||
{
|
||||
struct intel_context *intel = intel_context(ctx);
|
||||
struct intel_region *dst = intel_drawbuf_region(intel);
|
||||
struct intel_region *dst;
|
||||
struct gl_framebuffer *fb = ctx->DrawBuffer;
|
||||
GLfloat tmpColor[4];
|
||||
GLubyte ubcolor[4];
|
||||
|
|
@ -198,6 +198,9 @@ do_blit_bitmap( struct gl_context *ctx,
|
|||
return GL_FALSE;
|
||||
}
|
||||
|
||||
intel_prepare_render(intel);
|
||||
dst = intel_drawbuf_region(intel);
|
||||
|
||||
if (!dst)
|
||||
return GL_FALSE;
|
||||
|
||||
|
|
@ -226,8 +229,6 @@ do_blit_bitmap( struct gl_context *ctx,
|
|||
if (!intel_check_blit_fragment_ops(ctx, tmpColor[3] == 1.0F))
|
||||
return GL_FALSE;
|
||||
|
||||
intel_prepare_render(intel);
|
||||
|
||||
/* Clip to buffer bounds and scissor. */
|
||||
if (!_mesa_clip_to_region(fb->_Xmin, fb->_Ymin,
|
||||
fb->_Xmax, fb->_Ymax,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue