Module: Mesa Branch: master Commit: 46dfad8b36dda80982613a9d29b9a7e99db3abfb URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=46dfad8b36dda80982613a9d29b9a7e99db3abfb
Author: Vadim Girlin <[email protected]> Date: Sat May 4 22:05:43 2013 +0400 r600g/sb: fix memory leaks Signed-off-by: Vadim Girlin <[email protected]> --- src/gallium/drivers/r600/sb/sb_bc_parser.cpp | 3 ++- src/gallium/drivers/r600/sb/sb_shader.cpp | 5 +++++ 2 files changed, 7 insertions(+), 1 deletions(-) diff --git a/src/gallium/drivers/r600/sb/sb_bc_parser.cpp b/src/gallium/drivers/r600/sb/sb_bc_parser.cpp index e1478d3..8329287 100644 --- a/src/gallium/drivers/r600/sb/sb_bc_parser.cpp +++ b/src/gallium/drivers/r600/sb/sb_bc_parser.cpp @@ -74,6 +74,8 @@ int bc_parser::parse() { sh = new shader(ctx, t, bc->debug_id, enable_dump); int r = parse_shader(); + delete dec; + if (r) return r; @@ -94,7 +96,6 @@ int bc_parser::parse() { prepare_ir(); - delete dec; return r; } diff --git a/src/gallium/drivers/r600/sb/sb_shader.cpp b/src/gallium/drivers/r600/sb/sb_shader.cpp index 9bda84f..5944ba6 100644 --- a/src/gallium/drivers/r600/sb/sb_shader.cpp +++ b/src/gallium/drivers/r600/sb/sb_shader.cpp @@ -355,6 +355,11 @@ shader::~shader() { for (node_vec::iterator I = all_nodes.begin(), E = all_nodes.end(); I != E; ++I) (*I)->~node(); + + for (gpr_array_vec::iterator I = gpr_arrays.begin(), E = gpr_arrays.end(); + I != E; ++I) { + delete *I; + } } void shader::dump_ir() { _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
