Commit 70dcbe73 authored by Gabriel Ivăncescu's avatar Gabriel Ivăncescu Committed by Alexandre Julliard

mshtml: Use the dispex's destructor for all nodes.

parent ae1e5ec3
......@@ -861,7 +861,6 @@ fallback:
static const NodeImplVtbl HTMLAnchorElementImplVtbl = {
.clsid = &CLSID_HTMLAnchorElement,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLAnchorElement_handle_event,
......@@ -872,6 +871,7 @@ static const event_target_vtbl_t HTMLAnchorElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLAnchorElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLAnchorElement_traverse,
.unlink = HTMLAnchorElement_unlink
},
......
......@@ -477,7 +477,6 @@ fallback:
static const NodeImplVtbl HTMLAreaElementImplVtbl = {
.clsid = &CLSID_HTMLAreaElement,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLAreaElement_handle_event,
......@@ -488,6 +487,7 @@ static const event_target_vtbl_t HTMLAreaElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLAreaElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLAreaElement_traverse,
.unlink = HTMLAreaElement_unlink
},
......
......@@ -965,7 +965,6 @@ static const cpc_entry_t HTMLBodyElement_cpc[] = {
static const NodeImplVtbl HTMLBodyElementImplVtbl = {
.clsid = &CLSID_HTMLBody,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLBodyElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -979,6 +978,7 @@ static const event_target_vtbl_t HTMLBodyElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLBodyElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLBodyElement_traverse,
.unlink = HTMLBodyElement_unlink
},
......
......@@ -177,7 +177,6 @@ static void *HTMLCommentElement_query_interface(DispatchEx *dispex, REFIID riid)
static const NodeImplVtbl HTMLCommentElementImplVtbl = {
.clsid = &CLSID_HTMLCommentElement,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLCommentElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -188,6 +187,7 @@ static const event_target_vtbl_t HTMLCommentElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLCommentElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLDOMNode_traverse,
.unlink = HTMLDOMNode_unlink
},
......
......@@ -5725,16 +5725,6 @@ void detach_document_node(HTMLDocumentNode *doc)
}
}
static void HTMLDocumentNode_destructor(HTMLDOMNode *iface)
{
HTMLDocumentNode *This = impl_from_HTMLDOMNode(iface);
TRACE("(%p)\n", This);
free(This->event_vector);
ConnectionPointContainer_Destroy(&This->cp_container);
}
static HRESULT HTMLDocumentNode_clone(HTMLDOMNode *iface, nsIDOMNode *nsnode, HTMLDOMNode **ret)
{
HTMLDocumentNode *This = impl_from_HTMLDOMNode(iface);
......@@ -5744,7 +5734,6 @@ static HRESULT HTMLDocumentNode_clone(HTMLDOMNode *iface, nsIDOMNode *nsnode, HT
static const NodeImplVtbl HTMLDocumentNodeImplVtbl = {
.clsid = &CLSID_HTMLDocument,
.destructor = HTMLDocumentNode_destructor,
.cpc_entries = HTMLDocumentNode_cpc,
.clone = HTMLDocumentNode_clone,
};
......@@ -5886,6 +5875,15 @@ static void HTMLDocumentNode_unlink(DispatchEx *dispex)
}
}
static void HTMLDocumentNode_destructor(DispatchEx *dispex)
{
HTMLDocumentNode *This = impl_from_DispatchEx(dispex);
free(This->event_vector);
ConnectionPointContainer_Destroy(&This->cp_container);
HTMLDOMNode_destructor(&This->node.event_target.dispex);
}
static HRESULT HTMLDocumentNode_get_name(DispatchEx *dispex, DISPID id, BSTR *name)
{
HTMLDocumentNode *This = impl_from_DispatchEx(dispex);
......@@ -6058,7 +6056,7 @@ static HRESULT HTMLDocumentNode_location_hook(DispatchEx *dispex, WORD flags, DI
static const event_target_vtbl_t HTMLDocumentNode_event_target_vtbl = {
{
.query_interface = HTMLDocumentNode_query_interface,
.destructor = HTMLDOMNode_destructor,
.destructor = HTMLDocumentNode_destructor,
.traverse = HTMLDOMNode_traverse,
.unlink = HTMLDocumentNode_unlink,
.get_name = HTMLDocumentNode_get_name,
......@@ -6075,7 +6073,6 @@ static const event_target_vtbl_t HTMLDocumentNode_event_target_vtbl = {
static const NodeImplVtbl HTMLDocumentFragmentImplVtbl = {
.clsid = &CLSID_HTMLDocument,
.destructor = HTMLDocumentNode_destructor,
.cpc_entries = HTMLDocumentNode_cpc,
.clone = HTMLDocumentFragment_clone,
};
......
......@@ -6811,7 +6811,6 @@ const cpc_entry_t HTMLElement_cpc[] = {
static const NodeImplVtbl HTMLElementImplVtbl = {
.clsid = &CLSID_HTMLUnknownElement,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -6859,9 +6858,9 @@ void *HTMLElement_query_interface(DispatchEx *dispex, REFIID riid)
return HTMLDOMNode_query_interface(&This->node.event_target.dispex, riid);
}
void HTMLElement_destructor(HTMLDOMNode *iface)
void HTMLElement_destructor(DispatchEx *dispex)
{
HTMLElement *This = impl_from_HTMLDOMNode(iface);
HTMLElement *This = impl_from_DispatchEx(dispex);
ConnectionPointContainer_Destroy(&This->cp_container);
......@@ -6884,6 +6883,7 @@ void HTMLElement_destructor(HTMLDOMNode *iface)
}
free(This->filter);
HTMLDOMNode_destructor(&This->node.event_target.dispex);
}
HRESULT HTMLElement_get_dispid(DispatchEx *dispex, BSTR name, DWORD grfdex, DISPID *pid)
......@@ -7318,6 +7318,7 @@ static const event_target_vtbl_t HTMLElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface = HTMLElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLDOMNode_traverse,
.unlink = HTMLDOMNode_unlink,
},
......
......@@ -145,7 +145,6 @@ ConnectionPointContainer *HTMLElement_get_cp_container(DispatchEx*);
IHTMLEventObj *HTMLElement_set_current_event(DispatchEx*,IHTMLEventObj*);
#define HTMLELEMENT_DISPEX_VTBL_ENTRIES \
.destructor = HTMLDOMNode_destructor, \
.get_dispid = HTMLElement_get_dispid, \
.get_name = HTMLElement_get_name, \
.invoke = HTMLElement_invoke, \
......
......@@ -963,7 +963,6 @@ static HRESULT HTMLFormElement_handle_event(HTMLDOMNode *iface, DWORD eid, nsIDO
static const NodeImplVtbl HTMLFormElementImplVtbl = {
.clsid = &CLSID_HTMLFormElement,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLFormElement_handle_event,
......@@ -977,6 +976,7 @@ static const event_target_vtbl_t HTMLFormElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLFormElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLFormElement_traverse,
.unlink = HTMLFormElement_unlink
},
......
......@@ -715,7 +715,7 @@ static void HTMLFrameBase_destructor(HTMLFrameBase *This)
if(This->content_window)
This->content_window->frame_element = NULL;
HTMLElement_destructor(&This->element.node);
HTMLElement_destructor(&This->element.node.event_target.dispex);
}
static void HTMLFrameBase_Init(HTMLFrameBase *This, HTMLDocumentNode *doc, nsIDOMElement *nselem,
......@@ -957,9 +957,9 @@ static void HTMLFrameElement_unlink(DispatchEx *dispex)
unlink_ref(&This->framebase.nsframe);
}
static void HTMLFrameElement_destructor(HTMLDOMNode *iface)
static void HTMLFrameElement_destructor(DispatchEx *dispex)
{
HTMLFrameElement *This = frame_from_HTMLDOMNode(iface);
HTMLFrameElement *This = frame_from_DispatchEx(dispex);
HTMLFrameBase_destructor(&This->framebase);
}
......@@ -1003,7 +1003,6 @@ static HRESULT HTMLFrameElement_invoke(HTMLDOMNode *iface, DISPID id, LCID lcid,
static const NodeImplVtbl HTMLFrameElementImplVtbl = {
.clsid = &CLSID_HTMLFrameElement,
.destructor = HTMLFrameElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -1020,6 +1019,7 @@ static const event_target_vtbl_t HTMLFrameElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLFrameElement_query_interface,
.destructor = HTMLFrameElement_destructor,
.traverse = HTMLFrameElement_traverse,
.unlink = HTMLFrameElement_unlink
},
......@@ -1547,9 +1547,9 @@ static void HTMLIFrame_unlink(DispatchEx *dispex)
unlink_ref(&This->framebase.nsiframe);
}
static void HTMLIFrame_destructor(HTMLDOMNode *iface)
static void HTMLIFrame_destructor(DispatchEx *dispex)
{
HTMLIFrame *This = iframe_from_HTMLDOMNode(iface);
HTMLIFrame *This = iframe_from_DispatchEx(dispex);
HTMLFrameBase_destructor(&This->framebase);
}
......@@ -1593,7 +1593,6 @@ static HRESULT HTMLIFrame_invoke(HTMLDOMNode *iface, DISPID id, LCID lcid, WORD
static const NodeImplVtbl HTMLIFrameImplVtbl = {
.clsid = &CLSID_HTMLIFrame,
.destructor = HTMLIFrame_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -1610,6 +1609,7 @@ static const event_target_vtbl_t HTMLIFrame_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLIFrame_query_interface,
.destructor = HTMLIFrame_destructor,
.traverse = HTMLIFrame_traverse,
.unlink = HTMLIFrame_unlink
},
......
......@@ -140,7 +140,6 @@ static void *HTMLGenericElement_query_interface(DispatchEx *dispex, REFIID riid)
static const NodeImplVtbl HTMLGenericElementImplVtbl = {
.clsid = &CLSID_HTMLGenericElement,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -151,6 +150,7 @@ static const event_target_vtbl_t HTMLGenericElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLGenericElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLDOMNode_traverse,
.unlink = HTMLDOMNode_unlink
},
......
......@@ -158,7 +158,6 @@ static void *HTMLTitleElement_query_interface(DispatchEx *dispex, REFIID riid)
static const NodeImplVtbl HTMLTitleElementImplVtbl = {
.clsid = &CLSID_HTMLTitleElement,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -169,6 +168,7 @@ static const event_target_vtbl_t HTMLTitleElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLTitleElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLDOMNode_traverse,
.unlink = HTMLDOMNode_unlink
},
......@@ -327,7 +327,6 @@ static void *HTMLHtmlElement_query_interface(DispatchEx *dispex, REFIID riid)
static const NodeImplVtbl HTMLHtmlElementImplVtbl = {
.clsid = &CLSID_HTMLHtmlElement,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -339,6 +338,7 @@ static const event_target_vtbl_t HTMLHtmlElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLHtmlElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLDOMNode_traverse,
.unlink = HTMLDOMNode_unlink
},
......@@ -555,7 +555,6 @@ static void *HTMLMetaElement_query_interface(DispatchEx *dispex, REFIID riid)
static const NodeImplVtbl HTMLMetaElementImplVtbl = {
.clsid = &CLSID_HTMLMetaElement,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -566,6 +565,7 @@ static const event_target_vtbl_t HTMLMetaElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLMetaElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLDOMNode_traverse,
.unlink = HTMLDOMNode_unlink
},
......@@ -717,7 +717,6 @@ static void *HTMLHeadElement_query_interface(DispatchEx *dispex, REFIID riid)
static const NodeImplVtbl HTMLHeadElementImplVtbl = {
.clsid = &CLSID_HTMLHeadElement,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -728,6 +727,7 @@ static const event_target_vtbl_t HTMLHeadElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLHeadElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLDOMNode_traverse,
.unlink = HTMLDOMNode_unlink
},
......
......@@ -698,7 +698,6 @@ static void HTMLImgElement_unlink(DispatchEx *dispex)
static const NodeImplVtbl HTMLImgElementImplVtbl = {
.clsid = &CLSID_HTMLImg,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -710,6 +709,7 @@ static const event_target_vtbl_t HTMLImgElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLImgElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLImgElement_traverse,
.unlink = HTMLImgElement_unlink
},
......
......@@ -1412,7 +1412,6 @@ static void HTMLInputElement_unlink(DispatchEx *dispex)
static const NodeImplVtbl HTMLInputElementImplVtbl = {
.clsid = &CLSID_HTMLInputElement,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -1426,6 +1425,7 @@ static const event_target_vtbl_t HTMLInputElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLInputElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLInputElement_traverse,
.unlink = HTMLInputElement_unlink
},
......@@ -1611,7 +1611,6 @@ static void *HTMLLabelElement_query_interface(DispatchEx *dispex, REFIID riid)
static const NodeImplVtbl HTMLLabelElementImplVtbl = {
.clsid = &CLSID_HTMLLabelElement,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -1622,6 +1621,7 @@ static const event_target_vtbl_t HTMLLabelElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLLabelElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLDOMNode_traverse,
.unlink = HTMLDOMNode_unlink
},
......@@ -1947,7 +1947,6 @@ static void HTMLButtonElement_unlink(DispatchEx *dispex)
static const NodeImplVtbl HTMLButtonElementImplVtbl = {
.clsid = &CLSID_HTMLButtonElement,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -1961,6 +1960,7 @@ static const event_target_vtbl_t HTMLButtonElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLButtonElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLButtonElement_traverse,
.unlink = HTMLButtonElement_unlink
},
......
......@@ -418,7 +418,6 @@ static void HTMLLinkElement_unlink(DispatchEx *dispex)
}
static const NodeImplVtbl HTMLLinkElementImplVtbl = {
.clsid = &CLSID_HTMLLinkElement,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -431,6 +430,7 @@ static const event_target_vtbl_t HTMLLinkElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLLinkElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLLinkElement_traverse,
.unlink = HTMLLinkElement_unlink
},
......
......@@ -1449,8 +1449,6 @@ void HTMLDOMNode_unlink(DispatchEx *dispex)
void HTMLDOMNode_destructor(DispatchEx *dispex)
{
HTMLDOMNode *This = HTMLDOMNode_from_DispatchEx(dispex);
if(This->vtbl->destructor)
This->vtbl->destructor(This);
free(This);
}
......
......@@ -700,14 +700,14 @@ static void HTMLObjectElement_unlink(DispatchEx *dispex)
unlink_ref(&This->nsobject);
}
static void HTMLObjectElement_destructor(HTMLDOMNode *iface)
static void HTMLObjectElement_destructor(DispatchEx *dispex)
{
HTMLObjectElement *This = impl_from_HTMLDOMNode(iface);
HTMLObjectElement *This = impl_from_DispatchEx(dispex);
if(This->plugin_container.plugin_host)
detach_plugin_host(This->plugin_container.plugin_host);
HTMLElement_destructor(&This->plugin_container.element.node);
HTMLElement_destructor(&This->plugin_container.element.node.event_target.dispex);
}
static HRESULT HTMLObjectElement_get_dispid(HTMLDOMNode *iface, BSTR name, DWORD grfdex, DISPID *dispid)
......@@ -740,7 +740,6 @@ static HRESULT HTMLObjectElement_invoke(HTMLDOMNode *iface, DISPID id, LCID lcid
static const NodeImplVtbl HTMLObjectElementImplVtbl = {
.clsid = &CLSID_HTMLObjectElement,
.destructor = HTMLObjectElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -755,6 +754,7 @@ static const event_target_vtbl_t HTMLObjectElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLObjectElement_query_interface,
.destructor = HTMLObjectElement_destructor,
.traverse = HTMLObjectElement_traverse,
.unlink = HTMLObjectElement_unlink
},
......@@ -1000,7 +1000,6 @@ static void *HTMLEmbedElement_query_interface(DispatchEx *dispex, REFIID riid)
static const NodeImplVtbl HTMLEmbedElementImplVtbl = {
.clsid = &CLSID_HTMLEmbed,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -1011,6 +1010,7 @@ static const event_target_vtbl_t HTMLEmbedElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLEmbedElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLDOMNode_traverse,
.unlink = HTMLDOMNode_unlink
},
......
......@@ -411,16 +411,15 @@ static void HTMLScriptElement_unlink(DispatchEx *dispex)
unlink_ref(&This->nsscript);
}
static void HTMLScriptElement_destructor(HTMLDOMNode *iface)
static void HTMLScriptElement_destructor(DispatchEx *dispex)
{
HTMLScriptElement *This = impl_from_HTMLDOMNode(iface);
HTMLScriptElement *This = impl_from_DispatchEx(dispex);
free(This->src_text);
HTMLElement_destructor(&This->element.node);
HTMLElement_destructor(&This->element.node.event_target.dispex);
}
static const NodeImplVtbl HTMLScriptElementImplVtbl = {
.clsid = &CLSID_HTMLScriptElement,
.destructor = HTMLScriptElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -433,6 +432,7 @@ static const event_target_vtbl_t HTMLScriptElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLScriptElement_query_interface,
.destructor = HTMLScriptElement_destructor,
.traverse = HTMLScriptElement_traverse,
.unlink = HTMLScriptElement_unlink
},
......
......@@ -379,7 +379,6 @@ static void HTMLOptionElement_unlink(DispatchEx *dispex)
static const NodeImplVtbl HTMLOptionElementImplVtbl = {
.clsid = &CLSID_HTMLOptionElement,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -390,6 +389,7 @@ static const event_target_vtbl_t HTMLOptionElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLOptionElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLOptionElement_traverse,
.unlink = HTMLOptionElement_unlink
},
......@@ -1421,7 +1421,6 @@ static HRESULT HTMLSelectElement_invoke(HTMLDOMNode *iface, DISPID id, LCID lcid
static const NodeImplVtbl HTMLSelectElementImplVtbl = {
.clsid = &CLSID_HTMLSelectElement,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -1437,6 +1436,7 @@ static const event_target_vtbl_t HTMLSelectElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLSelectElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLSelectElement_traverse,
.unlink = HTMLSelectElement_unlink
},
......
......@@ -360,11 +360,6 @@ static const IHTMLStyleElement2Vtbl HTMLStyleElement2Vtbl = {
HTMLStyleElement2_get_sheet
};
static inline HTMLStyleElement *impl_from_HTMLDOMNode(HTMLDOMNode *iface)
{
return CONTAINING_RECORD(iface, HTMLStyleElement, element.node);
}
static inline HTMLStyleElement *impl_from_DispatchEx(DispatchEx *iface)
{
return CONTAINING_RECORD(iface, HTMLStyleElement, element.node.event_target.dispex);
......@@ -398,12 +393,12 @@ static void HTMLStyleElement_unlink(DispatchEx *dispex)
unlink_ref(&This->nsstyle);
}
static void HTMLStyleElement_destructor(HTMLDOMNode *iface)
static void HTMLStyleElement_destructor(DispatchEx *dispex)
{
HTMLStyleElement *This = impl_from_HTMLDOMNode(iface);
HTMLStyleElement *This = impl_from_DispatchEx(dispex);
unlink_ref(&This->style_sheet);
HTMLElement_destructor(iface);
HTMLElement_destructor(dispex);
}
static void HTMLStyleElement_init_dispex_info(dispex_data_t *info, compat_mode_t mode)
......@@ -425,7 +420,6 @@ static void HTMLStyleElement_init_dispex_info(dispex_data_t *info, compat_mode_t
static const NodeImplVtbl HTMLStyleElementImplVtbl = {
.clsid = &CLSID_HTMLStyleElement,
.destructor = HTMLStyleElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -436,6 +430,7 @@ static const event_target_vtbl_t HTMLStyleElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLStyleElement_query_interface,
.destructor = HTMLStyleElement_destructor,
.traverse = HTMLStyleElement_traverse,
.unlink = HTMLStyleElement_unlink
},
......
......@@ -479,7 +479,6 @@ static void HTMLTableCell_unlink(DispatchEx *dispex)
static const NodeImplVtbl HTMLTableCellImplVtbl = {
.clsid = &CLSID_HTMLTableCell,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -490,6 +489,7 @@ static const event_target_vtbl_t HTMLTableCell_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLTableCell_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLTableCell_traverse,
.unlink = HTMLTableCell_unlink
},
......@@ -909,7 +909,6 @@ static void HTMLTableRow_unlink(DispatchEx *dispex)
static const NodeImplVtbl HTMLTableRowImplVtbl = {
.clsid = &CLSID_HTMLTableRow,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -920,6 +919,7 @@ static const event_target_vtbl_t HTMLTableRow_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLTableRow_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLTableRow_traverse,
.unlink = HTMLTableRow_unlink
},
......@@ -1923,7 +1923,6 @@ static const cpc_entry_t HTMLTable_cpc[] = {
static const NodeImplVtbl HTMLTableImplVtbl = {
.clsid = &CLSID_HTMLTable,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLTable_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -1934,6 +1933,7 @@ static const event_target_vtbl_t HTMLTable_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLTable_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLTable_traverse,
.unlink = HTMLTable_unlink
},
......
......@@ -440,7 +440,6 @@ static void HTMLTextAreaElement_unlink(DispatchEx *dispex)
static const NodeImplVtbl HTMLTextAreaElementImplVtbl = {
.clsid = &CLSID_HTMLTextAreaElement,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.handle_event = HTMLElement_handle_event,
......@@ -454,6 +453,7 @@ static const event_target_vtbl_t HTMLTextAreaElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= HTMLTextAreaElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLTextAreaElement_traverse,
.unlink = HTMLTextAreaElement_unlink
},
......
......@@ -813,7 +813,6 @@ struct GeckoBrowser {
typedef struct {
const CLSID *clsid;
void (*destructor)(HTMLDOMNode*);
const cpc_entry_t *cpc_entries;
HRESULT (*clone)(HTMLDOMNode*,nsIDOMNode*,HTMLDOMNode**);
HRESULT (*handle_event)(HTMLDOMNode*,DWORD,nsIDOMEvent*,BOOL*);
......@@ -1210,7 +1209,7 @@ void HTMLDOMNode_unlink(DispatchEx*);
void HTMLDOMNode_init_dispex_info(dispex_data_t*,compat_mode_t);
void *HTMLElement_query_interface(DispatchEx*,REFIID);
void HTMLElement_destructor(HTMLDOMNode*);
void HTMLElement_destructor(DispatchEx*);
HRESULT HTMLElement_get_dispid(DispatchEx*,BSTR,DWORD,DISPID*);
HRESULT HTMLElement_get_name(DispatchEx*,DISPID,BSTR*);
HRESULT HTMLElement_invoke(DispatchEx*,DISPID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,IServiceProvider*);
......
......@@ -190,7 +190,6 @@ static void *SVGElement_query_interface(DispatchEx *dispex, REFIID riid)
static const NodeImplVtbl SVGElementImplVtbl = {
.clsid = &CLSID_SVGElement,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.get_attr_col = HTMLElement_get_attr_col,
......@@ -200,6 +199,7 @@ static const event_target_vtbl_t SVGElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= SVGElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLDOMNode_traverse,
.unlink = HTMLDOMNode_unlink
},
......@@ -740,7 +740,6 @@ static void *SVGSVGElement_query_interface(DispatchEx *dispex, REFIID riid)
static const NodeImplVtbl SVGSVGElementImplVtbl = {
.clsid = &CLSID_SVGSVGElement,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.get_attr_col = HTMLElement_get_attr_col,
......@@ -750,6 +749,7 @@ static const event_target_vtbl_t SVGSVGElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= SVGSVGElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLDOMNode_traverse,
.unlink = HTMLDOMNode_unlink
},
......@@ -920,7 +920,6 @@ static void *SVGCircleElement_query_interface(DispatchEx *dispex, REFIID riid)
static const NodeImplVtbl SVGCircleElementImplVtbl = {
.clsid = &CLSID_SVGCircleElement,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.get_attr_col = HTMLElement_get_attr_col,
......@@ -930,6 +929,7 @@ static const event_target_vtbl_t SVGCircleElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= SVGCircleElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLDOMNode_traverse,
.unlink = HTMLDOMNode_unlink
},
......@@ -1175,7 +1175,6 @@ static void *SVGTSpanElement_query_interface(DispatchEx *dispex, REFIID riid)
static const NodeImplVtbl SVGTSpanElementImplVtbl = {
.clsid = &CLSID_SVGTSpanElement,
.destructor = HTMLElement_destructor,
.cpc_entries = HTMLElement_cpc,
.clone = HTMLElement_clone,
.get_attr_col = HTMLElement_get_attr_col,
......@@ -1185,6 +1184,7 @@ static const event_target_vtbl_t SVGTSpanElement_event_target_vtbl = {
{
HTMLELEMENT_DISPEX_VTBL_ENTRIES,
.query_interface= SVGTSpanElement_query_interface,
.destructor = HTMLElement_destructor,
.traverse = HTMLDOMNode_traverse,
.unlink = HTMLDOMNode_unlink
},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment