[PATCH vkd3d 7/8] vkd3d-shader/hlsl: Swap failure and success branches in copy_propagation_transform_load().

Giovanni Mascellani gmascellani at codeweavers.com
Tue May 3 04:57:22 CDT 2022


Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>
---
 libs/vkd3d-shader/hlsl_codegen.c | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/libs/vkd3d-shader/hlsl_codegen.c b/libs/vkd3d-shader/hlsl_codegen.c
index 78b22910..7c401e14 100644
--- a/libs/vkd3d-shader/hlsl_codegen.c
+++ b/libs/vkd3d-shader/hlsl_codegen.c
@@ -474,18 +474,20 @@ static bool copy_propagation_transform_load(struct hlsl_ctx *ctx,
             return false;
     }
 
-    if (!(new_node = copy_propagation_compute_replacement(ctx, state, &load->src, dimx, &swizzle)))
-        return false;
-
-    if (type->type != HLSL_CLASS_OBJECT)
+    if ((new_node = copy_propagation_compute_replacement(ctx, state, &load->src, dimx, &swizzle)))
     {
-        if (!(swizzle_node = hlsl_new_swizzle(ctx, swizzle, dimx, new_node, &node->loc)))
-            return false;
-        list_add_before(&node->entry, &swizzle_node->node.entry);
-        new_node = &swizzle_node->node;
+        if (type->type != HLSL_CLASS_OBJECT)
+        {
+            if (!(swizzle_node = hlsl_new_swizzle(ctx, swizzle, dimx, new_node, &node->loc)))
+                return false;
+            list_add_before(&node->entry, &swizzle_node->node.entry);
+            new_node = &swizzle_node->node;
+        }
+        hlsl_replace_node(node, new_node);
+        return true;
     }
-    hlsl_replace_node(node, new_node);
-    return true;
+
+    return false;
 }
 
 static bool copy_propagation_transform_object_load(struct hlsl_ctx *ctx,
-- 
2.36.0




More information about the wine-devel mailing list