Mesa (arb_geometry_shader4): gs: use mesa_realloc like the code for fs and vs

Zack Rusin zack at kemper.freedesktop.org
Tue Jul 14 04:23:03 UTC 2009


Module: Mesa
Branch: arb_geometry_shader4
Commit: 856c400001deb0d890f92a7f7158d4e27a1c34a1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=856c400001deb0d890f92a7f7158d4e27a1c34a1

Author: Zack Rusin <zackr at vmware.com>
Date:   Mon Jul 13 17:28:36 2009 -0400

gs: use mesa_realloc like the code for fs and vs

---

 src/mesa/state_tracker/st_program.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c
index 6c0d61d..27862cd 100644
--- a/src/mesa/state_tracker/st_program.c
+++ b/src/mesa/state_tracker/st_program.c
@@ -593,7 +593,7 @@ st_translate_geometry_program(struct st_context *st,
                               const GLuint inputMapping[])
 {
    struct pipe_context *pipe = st->pipe;
-   struct tgsi_token tokens[ST_MAX_SHADER_TOKENS];
+   struct tgsi_token *tokens;
    GLuint *outputMapping;
    GLuint defaultInputMapping[GEOM_ATTRIB_MAX];
    GLuint defaultOutputMapping[GEOM_RESULT_MAX];
@@ -616,6 +616,13 @@ st_translate_geometry_program(struct st_context *st,
 
    GLint i;
 
+   tokens =  (struct tgsi_token *)MALLOC(ST_MAX_SHADER_TOKENS * sizeof *tokens);
+   if(!tokens) {
+      /* FIXME: propagate error to the caller */
+      assert(0);
+      return;
+   }
+
    memset(&gs, 0, sizeof(gs));
    memset(input_flags, 0, sizeof(input_flags));
    memset(output_flags, 0, sizeof(output_flags));
@@ -792,7 +799,9 @@ st_translate_geometry_program(struct st_context *st,
    assert(num_tokens < ST_MAX_SHADER_TOKENS);
 
    gs.shader.tokens = (struct tgsi_token *)
-                      mem_dup(tokens, num_tokens * sizeof(tokens[0]));
+                      _mesa_realloc(tokens,
+                                    ST_MAX_SHADER_TOKENS * sizeof *tokens,
+                                    num_tokens * sizeof *tokens);
    gs.vertices_out = stgp->Base.VerticesOut;
    gs.input_type = stgp->Base.InputType;
    gs.output_type = stgp->Base.OutputType;




More information about the mesa-commit mailing list