Jacek Caban (@jacek) commented about dlls/mshtml/htmlevent.c:
- DOMProgressEvent *progress_event = event;
- progress_event->IDOMProgressEvent_iface.lpVtbl = &DOMProgressEventVtbl;
- progress_event->nsevent = iface;
}
static DOMEvent *alloc_event(nsIDOMEvent *nsevent, compat_mode_t compat_mode, eventid_t event_id) {
- static const struct {
REFIID iid;
dispex_static_data_t *dispex_data;
void (*ctor)(void *event, void *iface);
void *(*query_interface)(DOMEvent*,REFIID);
void (*destroy)(DOMEvent*);
unsigned size;
compat_mode_t compat_mode;
- } types_table[] = {
Having a constructor here should be enough, other fields seem redundant. You could, for example, move allocation to constructors. Constructors would then call a common allocation helper, passing required info.