aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2009-10-27 11:46:29 -0700
committerIan Romanick <[email protected]>2009-10-27 17:06:18 -0700
commit8df9587d68752f3369cc1eda1606d3b7c1041ec6 (patch)
treecb06b8c324442556aef30307d2173fe3babf1aa0 /src
parent0f255d195651f104a0c0bed84039b656d94ac4cc (diff)
ARB prog parser: Don't leak program string
The program string is kept in the program object. On the second call into glProgramStringARB the previous kept string would be leaked.
Diffstat (limited to 'src')
-rw-r--r--src/mesa/shader/program_parse.y4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y
index ae9e15ae5ae..c3152aa2f88 100644
--- a/src/mesa/shader/program_parse.y
+++ b/src/mesa/shader/program_parse.y
@@ -2278,6 +2278,10 @@ _mesa_parse_arb_program(GLcontext *ctx, GLenum target, const GLubyte *str,
_mesa_memcpy (strz, str, len);
strz[len] = '\0';
+ if (state->prog->String != NULL) {
+ _mesa_free(state->prog->String);
+ }
+
state->prog->String = strz;
state->st = _mesa_symbol_table_ctor();