Rémi Bernon (@rbernon) commented about tools/widl/metadata.c:
+{
- const var_t *arg;
- UINT len = 3, count = 0;
- buf[0] = SIG_TYPE_HASTHIS;
- buf[1] = 0;
- buf[2] = ELEMENT_TYPE_VOID;
- if (method) LIST_FOR_EACH_ENTRY( arg, type_function_get_args(method->declspec.type), var_t, entry ) count++;
- if (count > 3) LIST_FOR_EACH_ENTRY( arg, type_function_get_args(method->declspec.type), var_t, entry )
- {
if (--count < 3) break; /* omit last 3 standard composition args */
len += make_type_sig( arg->declspec.type, buf + len );
buf[1]++;
- }
This looks weird and arbitrary, would you mind detailing what it is about?