Mesa (master): vc4: Fix memory leaks of some vc4_compile contents.
Eric Anholt
anholt at kemper.freedesktop.org
Mon Sep 15 20:17:00 UTC 2014
Module: Mesa
Branch: master
Commit: f78ee1b280c82d525370cc378467276584acf0c8
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f78ee1b280c82d525370cc378467276584acf0c8
Author: Eric Anholt <eric at anholt.net>
Date: Mon Sep 15 12:15:02 2014 -0700
vc4: Fix memory leaks of some vc4_compile contents.
---
src/gallium/drivers/vc4/vc4_program.c | 16 ++++++++--------
src/gallium/drivers/vc4/vc4_qir.c | 5 +++--
2 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/src/gallium/drivers/vc4/vc4_program.c b/src/gallium/drivers/vc4/vc4_program.c
index 01d4bad..12584e1 100644
--- a/src/gallium/drivers/vc4/vc4_program.c
+++ b/src/gallium/drivers/vc4/vc4_program.c
@@ -28,6 +28,7 @@
#include "util/u_hash_table.h"
#include "util/u_hash.h"
#include "util/u_memory.h"
+#include "util/ralloc.h"
#include "tgsi/tgsi_dump.h"
#include "tgsi/tgsi_info.h"
@@ -1312,14 +1313,14 @@ vc4_shader_tgsi_to_qir(struct vc4_compiled_shader *shader, enum qstage stage,
c->stage = stage;
/* XXX sizing */
- c->temps = calloc(sizeof(struct qreg), 1024);
- c->inputs = calloc(sizeof(struct qreg), 8 * 4);
- c->outputs = calloc(sizeof(struct qreg), 1024);
- c->uniforms = calloc(sizeof(struct qreg), 1024);
- c->consts = calloc(sizeof(struct qreg), 1024);
+ c->temps = ralloc_array(c, struct qreg, 1024);
+ c->inputs = ralloc_array(c, struct qreg, 8 * 4);
+ c->outputs = ralloc_array(c, struct qreg, 1024);
+ c->uniforms = ralloc_array(c, struct qreg, 1024);
+ c->consts = ralloc_array(c, struct qreg, 1024);
- c->uniform_data = calloc(sizeof(uint32_t), 1024);
- c->uniform_contents = calloc(sizeof(enum quniform_contents), 1024);
+ c->uniform_data = ralloc_array(c, uint32_t, 1024);
+ c->uniform_contents = ralloc_array(c, enum quniform_contents, 1024);
c->shader_state = key->shader_state;
ret = tgsi_parse_init(&c->parser, c->shader_state->tokens);
@@ -1383,7 +1384,6 @@ vc4_shader_tgsi_to_qir(struct vc4_compiled_shader *shader, enum qstage stage,
}
tgsi_parse_free(&c->parser);
- free(c->temps);
qir_optimize(c);
diff --git a/src/gallium/drivers/vc4/vc4_qir.c b/src/gallium/drivers/vc4/vc4_qir.c
index ef8a4e5..60455d5 100644
--- a/src/gallium/drivers/vc4/vc4_qir.c
+++ b/src/gallium/drivers/vc4/vc4_qir.c
@@ -23,6 +23,7 @@
#include "util/u_memory.h"
#include "util/u_simple_list.h"
+#include "util/ralloc.h"
#include "vc4_qir.h"
#include "vc4_qpu.h"
@@ -274,7 +275,7 @@ qir_reg_equals(struct qreg a, struct qreg b)
struct vc4_compile *
qir_compile_init(void)
{
- struct vc4_compile *c = CALLOC_STRUCT(vc4_compile);
+ struct vc4_compile *c = rzalloc(NULL, struct vc4_compile);
make_empty_list(&c->instructions);
@@ -284,7 +285,7 @@ qir_compile_init(void)
void
qir_compile_destroy(struct vc4_compile *c)
{
- free(c);
+ ralloc_free(c);
}
const char *
More information about the mesa-commit
mailing list