From: Jonathan Liu Date: Mon, 16 Dec 2013 01:24:00 +0000 (-0700) Subject: llvmpipe: use pipe_sampler_view_release() to avoid segfault X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7990ab58fa01cbebcefd63dd25af5fd6fdddf019;p=mesa.git llvmpipe: use pipe_sampler_view_release() to avoid segfault This fixes another case of faulting when freeing a pipe_sampler_view that belongs to a previously destroyed context. Cc: "10.0" Signed-off-by: Jonathan Liu Reviewed-by: Brian Paul --- diff --git a/src/gallium/drivers/llvmpipe/lp_state_sampler.c b/src/gallium/drivers/llvmpipe/lp_state_sampler.c index 1d3db0f25c7..ff498f7f15a 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_sampler.c +++ b/src/gallium/drivers/llvmpipe/lp_state_sampler.c @@ -136,6 +136,12 @@ llvmpipe_set_sampler_views(struct pipe_context *pipe, /* set the new sampler views */ for (i = 0; i < num; i++) { + /* Note: we're using pipe_sampler_view_release() here to work around + * a possible crash when the old view belongs to another context that + * was already destroyed. + */ + pipe_sampler_view_release(pipe, + &llvmpipe->sampler_views[shader][start + i]); pipe_sampler_view_reference(&llvmpipe->sampler_views[shader][start + i], views[i]); }