From 01b39b053b0cb6c7493b560b26734f3c4fa52efa Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 3 Nov 2010 20:22:28 +0000 Subject: 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. --- src/gallium/drivers/r600/r600_pipe.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/gallium/drivers/r600/r600_pipe.c') diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c index 55370f06fd..128c998b93 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); -- cgit v1.2.3