[Mesa-dev] [PATCH] mesa/prgram: Use nir_variable_create in prog_to_nir to avoid a memleak.

Matthias Lorenz oschowa at web.de
Mon Feb 25 11:16:28 UTC 2019


Use of nir_variable_create was suggested by Jason Ekstrand.

Fixes: 3d7611e9 "st/nir: use NIR for asm programs"
---
 src/mesa/program/prog_to_nir.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/mesa/program/prog_to_nir.c b/src/mesa/program/prog_to_nir.c
index 1c9d0018d55..3f8abb121e7 100644
--- a/src/mesa/program/prog_to_nir.c
+++ b/src/mesa/program/prog_to_nir.c
@@ -1012,13 +1012,12 @@ prog_to_nir(const struct gl_program *prog,
    s = c->build.shader;

    if (prog->Parameters->NumParameters > 0) {
-      c->parameters = rzalloc(s, nir_variable);
-      c->parameters->type =
-         glsl_array_type(glsl_vec4_type(), prog->Parameters->NumParameters, 0);
-      c->parameters->name = strdup(prog->Parameters->Parameters[0].Name);
-      c->parameters->data.read_only = true;
-      c->parameters->data.mode = nir_var_uniform;
-      exec_list_push_tail(&s->uniforms, &c->parameters->node);
+      c->parameters =
+         nir_variable_create(s, nir_var_uniform,
+                             glsl_array_type(glsl_vec4_type(),
+                                             prog->Parameters->NumParameters,
+                                             0),
+                             prog->Parameters->Parameters[0].Name);
    }

    setup_registers_and_variables(c);
--
2.20.1



More information about the mesa-dev mailing list