[PATCH vkd3d 08/10] vkd3d-shader/spirv: Properly compare integers in vkd3d_spirv_declaration_compare().

Henri Verbeet hverbeet at codeweavers.com
Mon Feb 28 05:23:50 CST 2022


Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
---
 libs/vkd3d-shader/spirv.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c
index 1ffce6a1..cc8748d9 100644
--- a/libs/vkd3d-shader/spirv.c
+++ b/libs/vkd3d-shader/spirv.c
@@ -511,11 +511,12 @@ static int vkd3d_spirv_declaration_compare(const void *key, const struct rb_entr
 {
     const struct vkd3d_spirv_declaration *a = key;
     const struct vkd3d_spirv_declaration *b = RB_ENTRY_VALUE(e, const struct vkd3d_spirv_declaration, entry);
+    int ret;
 
-    if (a->op != b->op)
-        return a->op - b->op;
-    if (a->parameter_count != b->parameter_count)
-        return a->parameter_count - b->parameter_count;
+    if ((ret = vkd3d_u32_compare(a->op, b->op)))
+        return ret;
+    if ((ret = vkd3d_u32_compare(a->parameter_count, b->parameter_count)))
+        return ret;
     assert(a->parameter_count <= ARRAY_SIZE(a->parameters));
     return memcmp(&a->parameters, &b->parameters, a->parameter_count * sizeof(*a->parameters));
 }
-- 
2.20.1




More information about the wine-devel mailing list