Henri Verbeet : d3dcompiler: Free the filename if we don' t store it in the HLSL preproc_directive rule (Valgrind).
Module: wine Branch: master Commit: 307cf703af34fe9c661890cbf368abb00fb68646 URL: http://source.winehq.org/git/wine.git/?a=commit;h=307cf703af34fe9c661890cbf3... Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Thu Apr 30 16:46:37 2015 +0200 d3dcompiler: Free the filename if we don't store it in the HLSL preproc_directive rule (Valgrind). --- dlls/d3dcompiler_43/hlsl.y | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/dlls/d3dcompiler_43/hlsl.y b/dlls/d3dcompiler_43/hlsl.y index f37e07e..80fe0e6 100644 --- a/dlls/d3dcompiler_43/hlsl.y +++ b/dlls/d3dcompiler_43/hlsl.y @@ -1097,20 +1097,23 @@ hlsl_prog: /* empty */ preproc_directive: PRE_LINE STRING { + const char **new_array = NULL; + TRACE("Updating line information to file %s, line %u\n", debugstr_a($2), $1); hlsl_ctx.line_no = $1; if (strcmp($2, hlsl_ctx.source_file)) - { - const char **new_array; - - hlsl_ctx.source_file = $2; new_array = d3dcompiler_realloc(hlsl_ctx.source_files, sizeof(*hlsl_ctx.source_files) * hlsl_ctx.source_files_count + 1); - if (new_array) - { - hlsl_ctx.source_files = new_array; - hlsl_ctx.source_files[hlsl_ctx.source_files_count++] = $2; - } + + if (new_array) + { + hlsl_ctx.source_files = new_array; + hlsl_ctx.source_files[hlsl_ctx.source_files_count++] = $2; + hlsl_ctx.source_file = $2; + } + else + { + d3dcompiler_free($2); } }
participants (1)
-
Alexandre Julliard