Rémi Bernon (@rbernon) commented about tools/widl/metadata.c:
+ memcpy( ptr + 3, name_contract, len_contract ); + ptr += len_contract + 3; + ptr[0] = ptr[1] = 0; + + free( name_iface ); + free( name_contract ); + return len_iface + len_contract + len_extra; +} + +static void add_activatable_attr_step1( type_t *type ) +{ + static const BYTE sig_default[] = { SIG_TYPE_HASTHIS, 2, ELEMENT_TYPE_VOID, ELEMENT_TYPE_U4, ELEMENT_TYPE_STRING }; + const attr_t *attr; + + if (type->attrs) LIST_FOR_EACH_ENTRY_REV( attr, type->attrs, const attr_t, entry ) + { Why not use get_attrp instead? If you can have more than one then I think `type->md.member[MD_ATTR_ACTIVATABLE] = ` below is wrong.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/8476#note_108505