From: José Fonseca Date: Wed, 3 Nov 2010 20:22:28 +0000 (+0000) Subject: r600g: Swap the util_blitter_destroy call order. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=01b39b053b0cb6c7493b560b26734f3c4fa52efa;p=mesa.git r600g: Swap the util_blitter_destroy call order. Trivial change that avoids a segmentation fault when the blitter state happens to be bound when the context is destroyed. The free calls should probably removed altogether in the future -- the responsibility to destroy the state atoms lies with whoever created it, and the safest thing for the pipe driver is to not touch any bound state in its destructor. --- diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c index 55370f06fd8..128c998b931 100644 --- a/src/gallium/drivers/r600/r600_pipe.c +++ b/src/gallium/drivers/r600/r600_pipe.c @@ -80,12 +80,13 @@ static void r600_destroy_context(struct pipe_context *context) rctx->context.delete_depth_stencil_alpha_state(&rctx->context, rctx->custom_dsa_flush); r600_context_fini(&rctx->ctx); + + util_blitter_destroy(rctx->blitter); + for (int i = 0; i < R600_PIPE_NSTATES; i++) { free(rctx->states[i]); } - util_blitter_destroy(rctx->blitter); - u_upload_destroy(rctx->upload_vb); u_upload_destroy(rctx->upload_ib);