Marcus Meissner wrote:
@@ -742,6 +742,9 @@ static void write_c_method_def(FILE *header, const type_t *iface)
static void write_c_disp_method_def(FILE *header, const type_t *iface) {
- if (!iface->ref) {
- error_loc("write_c_disp_method_def: no reference on interface(%p)\n", iface);
- } do_write_c_method_def(header, iface->ref, iface->name);
}
This can't ever happen. dispinterfaces always derive from IDispatch:
dispinterfacehdr: attributes dispinterface { attr_t *attrs; is_in_interface = TRUE; is_object_interface = TRUE; $$ = $2; if ($$->defined) error_loc("multiple definition error\n"); attrs = make_attr(ATTR_DISPINTERFACE); $$->attrs = append_attr( check_dispiface_attrs($2->name, $1), attrs ); $$->ref = find_type("IDispatch", 0); if (!$$->ref) error_loc("IDispatch is undefined\n"); $$->defined = TRUE; if (!parse_only && do_header) write_forward($$); }