diff options
author | Carl Worth <cworth@cworth.org> | 2010-06-23 15:47:04 -0700 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2010-06-23 16:35:45 -0700 |
commit | f961e4458f1e894ca782c1627b69cdee993a16f8 (patch) | |
tree | 2df145299ce4f02edbb7a2cf3ecce3fe4f3a2ac6 /main.cpp | |
parent | 2d2561ef9696aa5ff0c1a85e3a4a95475f927935 (diff) |
glsl_symbol_table: Add new talloc-based new()
We take advantage of overloading of the new operator (with an
additional parameter!) to make this look as "C++ like" as possible.
This closes 507 memory leaks when compiling glsl-orangebook-ch06-bump.frag
when measured with:
valgrind ./glsl glsl-orangebook-ch06-bump.frag
as seen here:
total heap usage: 55,623 allocs, 14,389 frees
(was 13,882 frees before)
Diffstat (limited to 'main.cpp')
-rw-r--r-- | main.cpp | 6 |
1 files changed, 1 insertions, 5 deletions
@@ -29,10 +29,6 @@ #include <fcntl.h> #include <unistd.h> -extern "C" { -#include <talloc.h> -} - #include "ast.h" #include "glsl_parser_extras.h" #include "glsl_parser.h" @@ -118,7 +114,7 @@ compile_shader(struct glsl_shader *shader) state->scanner = NULL; state->translation_unit.make_empty(); - state->symbols = new glsl_symbol_table; + state->symbols = new(shader) glsl_symbol_table; state->info_log = talloc_strdup(shader, ""); state->error = false; state->temp_index = 0; |