[Mesa-dev] [PATCH] nir: Mark the shader name during nir_sweep

Neil Roberts neil at linux.intel.com
Thu Oct 8 07:58:50 PDT 2015

Previously the name of the nir shader was being freed prematurely
during nir_sweep. Since 756613ed35d the name was later being used to
generate filenames for the optimiser debug output and these would end
up with garbage from the dangling pointer.
 src/glsl/nir/nir_sweep.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/glsl/nir/nir_sweep.c b/src/glsl/nir/nir_sweep.c
index d354975..082403f 100644
--- a/src/glsl/nir/nir_sweep.c
+++ b/src/glsl/nir/nir_sweep.c
@@ -154,6 +154,9 @@ nir_sweep(nir_shader *nir)
    /* First, move ownership of all the memory to a temporary context; assume dead. */
    ralloc_adopt(rubbish, nir);
+   /* The shader name is not dead */
+   ralloc_steal(nir, nir->info.name);
    /* Variables and registers are not dead.  Steal them back. */
    steal_list(nir, nir_variable, &nir->uniforms);
    steal_list(nir, nir_variable, &nir->inputs);

More information about the mesa-dev mailing list