ir_reader: Free memory for S-Expressions earlier.
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 25 Jun 2010 20:10:37 +0000 (13:10 -0700)
committerEric Anholt <eric@anholt.net>
Sat, 26 Jun 2010 00:07:42 +0000 (17:07 -0700)
There's no point in keeping it around once we've read the IR.

Also, remove an unnecessary talloc_parent call.

src/glsl/ir_reader.cpp

index 7383c42cbc75e93a380d9cdfd569856b16138b3b..03dce0d6849541a9ee9eb2bf0fc9b1404a98af5f 100644 (file)
@@ -70,8 +70,7 @@ void
 _mesa_glsl_read_ir(_mesa_glsl_parse_state *state, exec_list *instructions,
                   const char *src)
 {
-   void *ctx = talloc_parent(state);
-   s_expression *expr = s_expression::read_expression(ctx, src);
+   s_expression *expr = s_expression::read_expression(state, src);
    if (expr == NULL) {
       ir_read_error(state, NULL, "couldn't parse S-Expression.");
       return;
@@ -82,6 +81,7 @@ _mesa_glsl_read_ir(_mesa_glsl_parse_state *state, exec_list *instructions,
       return;
 
    read_instructions(state, instructions, expr, NULL);
+   talloc_free(expr);
 }
 
 static void