On Fri, 15 Jul 2022 at 03:24, Francisco Casas <fcasas(a)codeweavers.com> wrote:
@@ -911,24 +903,22 @@ static int compare_param_hlsl_types(const struct hlsl_type *t1, const struct hls return r; if (t1->type == HLSL_CLASS_STRUCT) { - struct list *t1cur, *t2cur; - struct hlsl_struct_field *t1field, *t2field; + size_t i;
- t1cur = list_head(t1->e.elements); - t2cur = list_head(t2->e.elements); - while (t1cur && t2cur) + if (t1->e.record.field_count != t2->e.record.field_count) + return t1->e.record.field_count - t2->e.record.field_count;
This is perhaps unlikely to be an issue with any field counts seen in practice, but we shouldn't use (modular) subtraction as comparison function; see also commit 790ab754d5ac4fb1a723e16b22dbeea1a52a12b8. Ideally we'd use a variant of vkd3d_u32_compare() here.