Mesa (master): st/mesa: fix memory leak in st_translate_mesa_program
Brian Paul
brianp at kemper.freedesktop.org
Mon Jan 18 17:49:04 UTC 2010
Module: Mesa
Branch: master
Commit: e5347ca94dd58351aa81ec09addd537f1dbc3e9d
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e5347ca94dd58351aa81ec09addd537f1dbc3e9d
Author: Marcin Slusarz <marcin.slusarz at gmail.com>
Date: Sun Jan 17 14:47:53 2010 -0800
st/mesa: fix memory leak in st_translate_mesa_program
Signed-off-by: Brian Paul <brianp at vmware.com>
---
src/mesa/state_tracker/st_mesa_to_tgsi.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/mesa/state_tracker/st_mesa_to_tgsi.c b/src/mesa/state_tracker/st_mesa_to_tgsi.c
index e788008..f07846f 100644
--- a/src/mesa/state_tracker/st_mesa_to_tgsi.c
+++ b/src/mesa/state_tracker/st_mesa_to_tgsi.c
@@ -779,6 +779,7 @@ st_translate_mesa_program(
{
struct st_translate translate, *t;
unsigned i;
+ enum pipe_error ret = PIPE_OK;
t = &translate;
memset(t, 0, sizeof *t);
@@ -865,8 +866,10 @@ st_translate_mesa_program(
t->constants = CALLOC( program->Parameters->NumParameters,
sizeof t->constants[0] );
- if (t->constants == NULL)
+ if (t->constants == NULL) {
+ ret = PIPE_ERROR_OUT_OF_MEMORY;
goto out;
+ }
for (i = 0; i < program->Parameters->NumParameters; i++) {
switch (program->Parameters->Parameters[i].Type) {
@@ -920,8 +923,6 @@ st_translate_mesa_program(
t->insn[t->labels[i].branch_target] );
}
- return PIPE_OK;
-
out:
FREE(t->insn);
FREE(t->labels);
@@ -931,7 +932,7 @@ out:
debug_printf("%s: translate error flag set\n", __FUNCTION__);
}
- return PIPE_ERROR_OUT_OF_MEMORY;
+ return ret;
}
More information about the mesa-commit
mailing list