mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
st/mesa: fix sampler view leak in st_DrawAtlasBitmaps()
I neglected to free the sampler view which was created earlier in the function. So for each glCallLists() command that used the bitmap atlas to draw text, we'd leak a sampler view object. Also, check for st_create_texture_sampler_view() failure and record GL_OUT_OF_MEMORY. Cc: "11.1 11.2" <mesa-stable@lists.freedesktop.org> Reviewed-by: Charmaine Lee <charmainel@vmware.com>
This commit is contained in:
parent
a17911ceb1
commit
aed975d5c5
1 changed files with 6 additions and 0 deletions
|
|
@ -704,6 +704,10 @@ st_DrawAtlasBitmaps(struct gl_context *ctx,
|
|||
st_validate_state(st, ST_PIPELINE_RENDER);
|
||||
|
||||
sv = st_create_texture_sampler_view(pipe, stObj->pt);
|
||||
if (!sv) {
|
||||
_mesa_error(ctx, GL_OUT_OF_MEMORY, "glCallLists(bitmap text)");
|
||||
return;
|
||||
}
|
||||
|
||||
setup_render_state(ctx, sv, color, true);
|
||||
|
||||
|
|
@ -793,6 +797,8 @@ st_DrawAtlasBitmaps(struct gl_context *ctx,
|
|||
|
||||
pipe_resource_reference(&vb.buffer, NULL);
|
||||
|
||||
pipe_sampler_view_reference(&sv, NULL);
|
||||
|
||||
/* We uploaded modified constants, need to invalidate them. */
|
||||
st->dirty.mesa |= _NEW_PROGRAM_CONSTANTS;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue