[PATCH 1/5] d3dcompiler: Free the filename if we don't store it in the HLSL preproc_directive rule (Valgrind).
Henri Verbeet
hverbeet at codeweavers.com
Thu Apr 30 09:46:37 CDT 2015
---
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);
}
}
--
1.7.10.4
More information about the wine-patches
mailing list