radeonsi: avoid stale pointers in si_delete_shader_selector

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Christian König 2014-03-08 14:16:23 +01:00
parent c1a06da465
commit 1a8c66023b
1 changed files with 6 additions and 1 deletions

View File

@ -2356,7 +2356,12 @@ static void si_delete_shader_selector(struct pipe_context *ctx,
while (p) {
c = p->next_variant;
si_pm4_delete_state(sctx, vs, p->pm4);
if (sel->type == PIPE_SHADER_GEOMETRY)
si_pm4_delete_state(sctx, gs, p->pm4);
else if (sel->type == PIPE_SHADER_FRAGMENT)
si_pm4_delete_state(sctx, ps, p->pm4);
else
si_pm4_delete_state(sctx, vs, p->pm4);
si_pipe_shader_destroy(ctx, p);
free(p);
p = c;