Rémi Bernon (@rbernon) commented about tools/widl/metadata.c:
- if (!arg_list) return;
- LIST_FOR_EACH_ENTRY( arg, arg_list, var_t, entry )
- {
type_t *type = arg->declspec.type;
if (type_get_type( type ) == TYPE_POINTER) type = type_pointer_get_ref_type( type );
if (type->name && !strcmp( type->name, "EventRegistrationToken" ))
{
UINT assemblyref, scope;
assemblyref = add_assemblyref_row( 0x200, 0, add_string("Windows.Foundation") );
scope = resolution_scope( TABLE_ASSEMBLYREF, assemblyref );
type->md.ref = add_typeref_row( scope, add_string("EventRegistrationToken"), add_string("Windows.Foundation") );
}
This doesn't look right, why do we need to hardcode a specific case like that?