Module: Mesa Branch: arb_geometry_shader4 Commit: 856c400001deb0d890f92a7f7158d4e27a1c34a1 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=856c400001deb0d890f92a7f7158d4e27a1c34a1
Author: Zack Rusin <[email protected]> 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; _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
