Matteo Bruni : d3dcompiler: Clear preprocessor lexer state after running it.

Alexandre Julliard julliard at winehq.org
Wed Sep 8 15:12:39 CDT 2021


Module: wine
Branch: master
Commit: 450d435306dae98d86e99bf894a2b14d30395e1e
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=450d435306dae98d86e99bf894a2b14d30395e1e

Author: Matteo Bruni <mbruni at codeweavers.com>
Date:   Wed Sep  8 12:49:02 2021 +0200

d3dcompiler: Clear preprocessor lexer state after running it.

Otherwise state might leak to the next preprocessed shader.

Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/d3dcompiler_43/compiler.c    | 1 +
 dlls/d3dcompiler_43/wpp_private.h | 1 +
 2 files changed, 2 insertions(+)

diff --git a/dlls/d3dcompiler_43/compiler.c b/dlls/d3dcompiler_43/compiler.c
index d4523edb99c..b75a1d0a6a5 100644
--- a/dlls/d3dcompiler_43/compiler.c
+++ b/dlls/d3dcompiler_43/compiler.c
@@ -475,6 +475,7 @@ int wpp_parse( const char *input, FILE *output )
     }
     /* Clean if_stack, it could remain dirty on errors */
     while (pp_get_if_depth()) pp_pop_if();
+    ppy_lex_destroy();
     del_special_defines();
     del_cmdline_defines();
     pp_pop_define_state();
diff --git a/dlls/d3dcompiler_43/wpp_private.h b/dlls/d3dcompiler_43/wpp_private.h
index 325c7f1e510..3b6d947d8a8 100644
--- a/dlls/d3dcompiler_43/wpp_private.h
+++ b/dlls/d3dcompiler_43/wpp_private.h
@@ -235,6 +235,7 @@ extern includelogicentry_t *pp_includelogiclist;
 extern FILE *ppy_out;
 extern char *ppy_text;
 int ppy_lex(void);
+int ppy_lex_destroy(void);
 
 void pp_do_include(char *fname, int type);
 void pp_push_ignore_state(void);




More information about the wine-cvs mailing list