From: Carl Worth Date: Sat, 19 Jun 2010 00:43:40 +0000 (-0700) Subject: Close memory leak in lexer. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=dc5811fd0c7600b165ddd4e04a0ccae69bb19ec8;p=mesa.git Close memory leak in lexer. Simply call talloc_strdup rather than strdup, (using the talloc_parent of our 'state' object, (known here as yyextra). This fix now makes glsl-orangebook-ch06-bump.frag 99.97% leak free: total heap usage: 55,623 allocs, 55,609 frees Only 14 missing frees now. --- diff --git a/glsl_lexer.lpp b/glsl_lexer.lpp index c15c99c4b06..fa439f12787 100644 --- a/glsl_lexer.lpp +++ b/glsl_lexer.lpp @@ -312,7 +312,9 @@ highp return HIGHP; precision return PRECISION; [_a-zA-Z][_a-zA-Z0-9]* { - yylval->identifier = strdup(yytext); + struct _mesa_glsl_parse_state *state = yyextra; + void *ctx = talloc_parent(state); + yylval->identifier = talloc_strdup(ctx, yytext); return IDENTIFIER; }