diff --git a/.pick_status.json b/.pick_status.json index d7195f607e8..ec2e5b6db73 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1404,7 +1404,7 @@ "description": "r300: fix constants_remap_table memory leak", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "1c2c4ddbd1e97bfd13430521e5c09cb5ce8e36e6", "notes": null diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index a0177280444..ff825c796a2 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -1119,6 +1119,8 @@ static void r300_delete_fs_state(struct pipe_context* pipe, void* shader) struct r300_fragment_shader* fs = (struct r300_fragment_shader*)shader; struct r300_fragment_shader_code *tmp, *ptr = fs->first; + free(fs->shader->code.constants_remap_table); + while (ptr) { tmp = ptr; ptr = ptr->next;