[PATCH vkd3d 04/17] vkd3d-shader/hlsl: Introduce function to clean up hlsl_derefs.

Francisco Casas fcasas at codeweavers.com
Thu Jul 14 20:23:46 CDT 2022


Signed-off-by: Francisco Casas <fcasas at codeweavers.com>
---

v2:
* Renamed hlsl_free_deref() to cleanup_deref().
* Made function static.

Signed-off-by: Francisco Casas <fcasas at codeweavers.com>
---
 libs/vkd3d-shader/hlsl.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/libs/vkd3d-shader/hlsl.c b/libs/vkd3d-shader/hlsl.c
index eac58c69..2925b4e5 100644
--- a/libs/vkd3d-shader/hlsl.c
+++ b/libs/vkd3d-shader/hlsl.c
@@ -621,6 +621,11 @@ static bool type_is_single_reg(const struct hlsl_type *type)
     return type->type == HLSL_CLASS_SCALAR || type->type == HLSL_CLASS_VECTOR;
 }
 
+static void cleanup_deref(struct hlsl_deref *deref)
+{
+    hlsl_src_remove(&deref->offset);
+}
+
 struct hlsl_ir_store *hlsl_new_store(struct hlsl_ctx *ctx, struct hlsl_ir_var *var, struct hlsl_ir_node *offset,
         struct hlsl_ir_node *rhs, unsigned int writemask, struct vkd3d_shader_location loc)
 {
@@ -1579,7 +1584,7 @@ static void free_ir_jump(struct hlsl_ir_jump *jump)
 
 static void free_ir_load(struct hlsl_ir_load *load)
 {
-    hlsl_src_remove(&load->src.offset);
+    cleanup_deref(&load->src);
     vkd3d_free(load);
 }
 
@@ -1592,8 +1597,8 @@ static void free_ir_loop(struct hlsl_ir_loop *loop)
 static void free_ir_resource_load(struct hlsl_ir_resource_load *load)
 {
     hlsl_src_remove(&load->coords);
-    hlsl_src_remove(&load->sampler.offset);
-    hlsl_src_remove(&load->resource.offset);
+    cleanup_deref(&load->sampler);
+    cleanup_deref(&load->resource);
     hlsl_src_remove(&load->texel_offset);
     vkd3d_free(load);
 }
@@ -1601,7 +1606,7 @@ static void free_ir_resource_load(struct hlsl_ir_resource_load *load)
 static void free_ir_store(struct hlsl_ir_store *store)
 {
     hlsl_src_remove(&store->rhs);
-    hlsl_src_remove(&store->lhs.offset);
+    cleanup_deref(&store->lhs);
     vkd3d_free(store);
 }
 
-- 
2.34.1




More information about the wine-devel mailing list