Zebediah Figura : vkd3d-shader/hlsl: Do not try to dereference the else_instrs list pointer if there is no else block.

Alexandre Julliard julliard at winehq.org
Thu Sep 23 15:34:41 CDT 2021


Module: vkd3d
Branch: master
Commit: 6f85aad54b0f9709daa8724445a031fdf1c9b7a7
URL:    https://source.winehq.org/git/vkd3d.git/?a=commit;h=6f85aad54b0f9709daa8724445a031fdf1c9b7a7

Author: Zebediah Figura <zfigura at codeweavers.com>
Date:   Mon Sep 20 16:40:12 2021 -0500

vkd3d-shader/hlsl: Do not try to dereference the else_instrs list pointer if there is no else block.

Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 libs/vkd3d-shader/hlsl.y | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libs/vkd3d-shader/hlsl.y b/libs/vkd3d-shader/hlsl.y
index dc2d310..20f88f9 100644
--- a/libs/vkd3d-shader/hlsl.y
+++ b/libs/vkd3d-shader/hlsl.y
@@ -2694,7 +2694,8 @@ selection_statement:
             if (!(instr = hlsl_new_if(ctx, condition, @1)))
                 YYABORT;
             list_move_tail(&instr->then_instrs, $5.then_instrs);
-            list_move_tail(&instr->else_instrs, $5.else_instrs);
+            if ($5.else_instrs)
+                list_move_tail(&instr->else_instrs, $5.else_instrs);
             vkd3d_free($5.then_instrs);
             vkd3d_free($5.else_instrs);
             if (condition->data_type->dimx > 1 || condition->data_type->dimy > 1)




More information about the wine-cvs mailing list