From bedb99608735aaa260eba0144ca6d46dbe43be55 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 2 Nov 2016 13:51:10 -0700 Subject: [PATCH] vc4: Fix use of undefined values since the ralloc zeroing changes. reralloc() no longer zeroes the new contents, so switch to using rzalloc_array() instead. --- .../drivers/vc4/vc4_qir_live_variables.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/vc4/vc4_qir_live_variables.c b/src/gallium/drivers/vc4/vc4_qir_live_variables.c index beefb0d7f8a..dc058f5b4a7 100644 --- a/src/gallium/drivers/vc4/vc4_qir_live_variables.c +++ b/src/gallium/drivers/vc4/vc4_qir_live_variables.c @@ -301,8 +301,13 @@ qir_calculate_live_intervals(struct vc4_compile *c) { int bitset_words = BITSET_WORDS(c->num_temps); - c->temp_start = reralloc(c, c->temp_start, int, c->num_temps); - c->temp_end = reralloc(c, c->temp_end, int, c->num_temps); + /* If we called this function more than once, then we should be + * freeing the previous arrays. + */ + assert(!c->temp_start); + + c->temp_start = rzalloc_array(c, int, c->num_temps); + c->temp_end = rzalloc_array(c, int, c->num_temps); for (int i = 0; i < c->num_temps; i++) { c->temp_start[i] = MAX_INSTRUCTION; @@ -310,10 +315,10 @@ qir_calculate_live_intervals(struct vc4_compile *c) } qir_for_each_block(block, c) { - block->def = reralloc(c, block->def, BITSET_WORD, bitset_words); - block->use = reralloc(c, block->use, BITSET_WORD, bitset_words); - block->live_in = reralloc(c, block->live_in, BITSET_WORD, bitset_words); - block->live_out = reralloc(c, block->live_out, BITSET_WORD, bitset_words); + block->def = rzalloc_array(c, BITSET_WORD, bitset_words); + block->use = rzalloc_array(c, BITSET_WORD, bitset_words); + block->live_in = rzalloc_array(c, BITSET_WORD, bitset_words); + block->live_out = rzalloc_array(c, BITSET_WORD, bitset_words); } qir_setup_def_use(c); -- 2.30.2