case TYPE_BASIC_INT64:
case TYPE_BASIC_INT:
case TYPE_BASIC_INT3264:
+ case TYPE_BASIC_LONG:
case TYPE_BASIC_CHAR:
case TYPE_BASIC_HYPER:
case TYPE_BASIC_BYTE:
iface->details.iface->disp_methods = NULL;
iface->details.iface->stmts = stmts;
iface->details.iface->inherit = inherit;
+ iface->details.iface->disp_inherit = NULL;
+ iface->details.iface->async_iface = NULL;
iface->defined = TRUE;
compute_method_indexes(iface);
}
iface->details.iface->stmts = NULL;
iface->details.iface->inherit = find_type("IDispatch", NULL, 0);
if (!iface->details.iface->inherit) error_loc("IDispatch is undefined\n");
+ iface->details.iface->disp_inherit = NULL;
+ iface->details.iface->async_iface = NULL;
iface->defined = TRUE;
compute_method_indexes(iface);
}
void type_dispinterface_define_from_iface(type_t *dispiface, type_t *iface)
{
- type_dispinterface_define(dispiface, iface->details.iface->disp_props,
- iface->details.iface->disp_methods);
+ dispiface->details.iface = xmalloc(sizeof(*dispiface->details.iface));
+ dispiface->details.iface->disp_props = NULL;
+ dispiface->details.iface->disp_methods = NULL;
+ dispiface->details.iface->stmts = NULL;
+ dispiface->details.iface->inherit = find_type("IDispatch", NULL, 0);
+ if (!dispiface->details.iface->inherit) error_loc("IDispatch is undefined\n");
+ dispiface->details.iface->disp_inherit = iface;
+ dispiface->details.iface->async_iface = NULL;
+ dispiface->defined = TRUE;
+ compute_method_indexes(dispiface);
}
void type_module_define(type_t *module, statement_list_t *stmts)