On 02/03/2016 08:00 PM, Ilia Mirkin wrote:
Spotted by Coverity

Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu>
---

v1 -> v2: forgot to remove the original free...

  src/gallium/drivers/nouveau/nv50/nv50_program.c | 9 +++++++--
  1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/nouveau/nv50/nv50_program.c 
b/src/gallium/drivers/nouveau/nv50/nv50_program.c
index 888d62e..a67ef28 100644
--- a/src/gallium/drivers/nouveau/nv50/nv50_program.c
+++ b/src/gallium/drivers/nouveau/nv50/nv50_program.c
@@ -369,7 +369,6 @@ nv50_program_translate(struct nv50_program *prog, uint16_t 
chipset,
        NOUVEAU_ERR("shader translation failed: %i\n", ret);
        goto out;
     }
-   FREE(info->bin.syms);

I would prefer to be consistent with what nvc0 currently does, so:

if (prog->type != PIPE_SHADER_COMPUTE)
  FREE(info->bin.syms);

And you could remove the below hunk.


     prog->code = info->bin.code;
     prog->code_size = info->bin.codeSize;
@@ -403,10 +402,13 @@ nv50_program_translate(struct nv50_program *prog, 
uint16_t chipset,
           break;
        }
        prog->gp.vert_count = info->prop.gp.maxVertices;
-   } else
+   }
+
     if (prog->type == PIPE_SHADER_COMPUTE) {
        prog->cp.syms = info->bin.syms;
        prog->cp.num_syms = info->bin.numSyms;
+   } else {
+      FREE(info->bin.syms);
     }

     if (prog->pipe.stream_output.num_outputs)
@@ -507,6 +509,9 @@ nv50_program_destroy(struct nv50_context *nv50, struct 
nv50_program *p)
     FREE(p->interps);
     FREE(p->so);

+   if (type == PIPE_SHADER_COMPUTE)
+      FREE(p->cp.syms);
+
     memset(p, 0, sizeof(*p));

     p->pipe = pipe;

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to