mshtml: Pass HTMLDOMNode pointer to HTMLElement's destructor.
This commit is contained in:
parent
6270a46ded
commit
e04cdbb82c
|
@ -412,12 +412,6 @@ static HRESULT WINAPI HTMLAnchorElement_blur(IHTMLAnchorElement *iface)
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void HTMLAnchorElement_destructor(IUnknown *iface)
|
|
||||||
{
|
|
||||||
HTMLAnchorElement *This = HTMLANCHOR_THIS(iface);
|
|
||||||
mshtml_free(This);
|
|
||||||
}
|
|
||||||
|
|
||||||
static const IHTMLAnchorElementVtbl HTMLAnchorElementVtbl = {
|
static const IHTMLAnchorElementVtbl HTMLAnchorElementVtbl = {
|
||||||
HTMLAnchorElement_QueryInterface,
|
HTMLAnchorElement_QueryInterface,
|
||||||
HTMLAnchorElement_AddRef,
|
HTMLAnchorElement_AddRef,
|
||||||
|
@ -469,6 +463,16 @@ static const IHTMLAnchorElementVtbl HTMLAnchorElementVtbl = {
|
||||||
HTMLAnchorElement_blur
|
HTMLAnchorElement_blur
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define HTMLANCHOR_NODE_THIS(iface) DEFINE_THIS2(HTMLAnchorElement, element.node, iface)
|
||||||
|
|
||||||
|
static void HTMLAnchorElement_destructor(HTMLDOMNode *iface)
|
||||||
|
{
|
||||||
|
HTMLAnchorElement *This = HTMLANCHOR_NODE_THIS(iface);
|
||||||
|
mshtml_free(This);
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef HTMLANCHOR_NODE_THIS
|
||||||
|
|
||||||
HTMLElement *HTMLAnchorElement_Create(nsIDOMHTMLElement *nselem)
|
HTMLElement *HTMLAnchorElement_Create(nsIDOMHTMLElement *nselem)
|
||||||
{
|
{
|
||||||
HTMLAnchorElement *ret = mshtml_alloc(sizeof(HTMLAnchorElement));
|
HTMLAnchorElement *ret = mshtml_alloc(sizeof(HTMLAnchorElement));
|
||||||
|
|
|
@ -426,14 +426,7 @@ static HRESULT WINAPI HTMLBodyElement_createTextRange(IHTMLBodyElement *iface, I
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void HTMLBodyElement_destructor(IUnknown *iface)
|
#undef HTMLBODY_THIS
|
||||||
{
|
|
||||||
HTMLBodyElement *This = HTMLBODY_THIS(iface);
|
|
||||||
|
|
||||||
ConnectionPointContainer_Destroy(&This->cp_container);
|
|
||||||
nsIDOMHTMLBodyElement_Release(This->nsbody);
|
|
||||||
mshtml_free(This);
|
|
||||||
}
|
|
||||||
|
|
||||||
static const IHTMLBodyElementVtbl HTMLBodyElementVtbl = {
|
static const IHTMLBodyElementVtbl HTMLBodyElementVtbl = {
|
||||||
HTMLBodyElement_QueryInterface,
|
HTMLBodyElement_QueryInterface,
|
||||||
|
@ -480,6 +473,19 @@ static const IHTMLBodyElementVtbl HTMLBodyElementVtbl = {
|
||||||
HTMLBodyElement_createTextRange
|
HTMLBodyElement_createTextRange
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define HTMLBODY_NODE_THIS(iface) DEFINE_THIS2(HTMLBodyElement, textcont.element.node, iface)
|
||||||
|
|
||||||
|
static void HTMLBodyElement_destructor(HTMLDOMNode *iface)
|
||||||
|
{
|
||||||
|
HTMLBodyElement *This = HTMLBODY_NODE_THIS(iface);
|
||||||
|
|
||||||
|
ConnectionPointContainer_Destroy(&This->cp_container);
|
||||||
|
nsIDOMHTMLBodyElement_Release(This->nsbody);
|
||||||
|
mshtml_free(This);
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef HTMLBODY_NODE_THIS
|
||||||
|
|
||||||
HTMLElement *HTMLBodyElement_Create(nsIDOMHTMLElement *nselem)
|
HTMLElement *HTMLBodyElement_Create(nsIDOMHTMLElement *nselem)
|
||||||
{
|
{
|
||||||
HTMLBodyElement *ret = mshtml_alloc(sizeof(HTMLBodyElement));
|
HTMLBodyElement *ret = mshtml_alloc(sizeof(HTMLBodyElement));
|
||||||
|
|
|
@ -1270,7 +1270,7 @@ static void HTMLElement_destructor(HTMLDOMNode *iface)
|
||||||
HTMLElement *This = HTMLELEM_NODE_THIS(iface);
|
HTMLElement *This = HTMLELEM_NODE_THIS(iface);
|
||||||
|
|
||||||
if(This->destructor)
|
if(This->destructor)
|
||||||
This->destructor(This->impl);
|
This->destructor(&This->node);
|
||||||
|
|
||||||
if(This->nselem)
|
if(This->nselem)
|
||||||
nsIDOMHTMLElement_Release(This->nselem);
|
nsIDOMHTMLElement_Release(This->nselem);
|
||||||
|
|
|
@ -649,14 +649,6 @@ static HRESULT WINAPI HTMLInputElement_get_start(IHTMLInputElement *iface, BSTR
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void HTMLInputElement_destructor(IUnknown *iface)
|
|
||||||
{
|
|
||||||
HTMLInputElement *This = HTMLINPUT_THIS(iface);
|
|
||||||
|
|
||||||
nsIDOMHTMLInputElement_Release(This->nsinput);
|
|
||||||
mshtml_free(This);
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef HTMLINPUT_THIS
|
#undef HTMLINPUT_THIS
|
||||||
|
|
||||||
static const IHTMLInputElementVtbl HTMLInputElementVtbl = {
|
static const IHTMLInputElementVtbl HTMLInputElementVtbl = {
|
||||||
|
@ -734,6 +726,18 @@ static const IHTMLInputElementVtbl HTMLInputElementVtbl = {
|
||||||
HTMLInputElement_get_start
|
HTMLInputElement_get_start
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define HTMLINPUT_NODE_THIS(iface) DEFINE_THIS2(HTMLInputElement, element.node, iface)
|
||||||
|
|
||||||
|
static void HTMLInputElement_destructor(HTMLDOMNode *iface)
|
||||||
|
{
|
||||||
|
HTMLInputElement *This = HTMLINPUT_NODE_THIS(iface);
|
||||||
|
|
||||||
|
nsIDOMHTMLInputElement_Release(This->nsinput);
|
||||||
|
mshtml_free(This);
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef HTMLINPUT_NODE_THIS
|
||||||
|
|
||||||
HTMLElement *HTMLInputElement_Create(nsIDOMHTMLElement *nselem)
|
HTMLElement *HTMLInputElement_Create(nsIDOMHTMLElement *nselem)
|
||||||
{
|
{
|
||||||
HTMLInputElement *ret = mshtml_alloc(sizeof(HTMLInputElement));
|
HTMLInputElement *ret = mshtml_alloc(sizeof(HTMLInputElement));
|
||||||
|
|
|
@ -341,13 +341,7 @@ static HRESULT WINAPI HTMLSelectElement_tags(IHTMLSelectElement *iface, VARIANT
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void HTMLSelectElement_destructor(IUnknown *iface)
|
#undef HTMLSELECT_THIS
|
||||||
{
|
|
||||||
HTMLSelectElement *This = HTMLSELECT_THIS(iface);
|
|
||||||
|
|
||||||
nsIDOMHTMLSelectElement_Release(This->nsselect);
|
|
||||||
mshtml_free(This);
|
|
||||||
}
|
|
||||||
|
|
||||||
static const IHTMLSelectElementVtbl HTMLSelectElementVtbl = {
|
static const IHTMLSelectElementVtbl HTMLSelectElementVtbl = {
|
||||||
HTMLSelectElement_QueryInterface,
|
HTMLSelectElement_QueryInterface,
|
||||||
|
@ -383,6 +377,18 @@ static const IHTMLSelectElementVtbl HTMLSelectElementVtbl = {
|
||||||
HTMLSelectElement_tags
|
HTMLSelectElement_tags
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define HTMLSELECT_NODE_THIS(iface) DEFINE_THIS2(HTMLSelectElement, element.node, iface)
|
||||||
|
|
||||||
|
static void HTMLSelectElement_destructor(HTMLDOMNode *iface)
|
||||||
|
{
|
||||||
|
HTMLSelectElement *This = HTMLSELECT_NODE_THIS(iface);
|
||||||
|
|
||||||
|
nsIDOMHTMLSelectElement_Release(This->nsselect);
|
||||||
|
mshtml_free(This);
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef HTMLSELECT_NODE_THIS
|
||||||
|
|
||||||
HTMLElement *HTMLSelectElement_Create(nsIDOMHTMLElement *nselem)
|
HTMLElement *HTMLSelectElement_Create(nsIDOMHTMLElement *nselem)
|
||||||
{
|
{
|
||||||
HTMLSelectElement *ret = mshtml_alloc(sizeof(HTMLSelectElement));
|
HTMLSelectElement *ret = mshtml_alloc(sizeof(HTMLSelectElement));
|
||||||
|
|
|
@ -346,14 +346,6 @@ static HRESULT WINAPI HTMLTextAreaElement_createTextRange(IHTMLTextAreaElement *
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void HTMLTextAreaElement_destructor(IUnknown *iface)
|
|
||||||
{
|
|
||||||
HTMLTextAreaElement *This = HTMLTXTAREA_THIS(iface);
|
|
||||||
|
|
||||||
nsIDOMHTMLTextAreaElement_Release(This->nstextarea);
|
|
||||||
mshtml_free(This);
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef HTMLTXTAREA_THIS
|
#undef HTMLTXTAREA_THIS
|
||||||
|
|
||||||
static const IHTMLTextAreaElementVtbl HTMLTextAreaElementVtbl = {
|
static const IHTMLTextAreaElementVtbl HTMLTextAreaElementVtbl = {
|
||||||
|
@ -392,6 +384,18 @@ static const IHTMLTextAreaElementVtbl HTMLTextAreaElementVtbl = {
|
||||||
HTMLTextAreaElement_createTextRange
|
HTMLTextAreaElement_createTextRange
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define HTMLTXTAREA_NODE_THIS(iface) DEFINE_THIS2(HTMLTextAreaElement, element.node, iface)
|
||||||
|
|
||||||
|
static void HTMLTextAreaElement_destructor(HTMLDOMNode *iface)
|
||||||
|
{
|
||||||
|
HTMLTextAreaElement *This = HTMLTXTAREA_NODE_THIS(iface);
|
||||||
|
|
||||||
|
nsIDOMHTMLTextAreaElement_Release(This->nstextarea);
|
||||||
|
mshtml_free(This);
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef HTMLTXTAREA_NODE_THIS
|
||||||
|
|
||||||
HTMLElement *HTMLTextAreaElement_Create(nsIDOMHTMLElement *nselem)
|
HTMLElement *HTMLTextAreaElement_Create(nsIDOMHTMLElement *nselem)
|
||||||
{
|
{
|
||||||
HTMLTextAreaElement *ret = mshtml_alloc(sizeof(HTMLTextAreaElement));
|
HTMLTextAreaElement *ret = mshtml_alloc(sizeof(HTMLTextAreaElement));
|
||||||
|
|
|
@ -272,7 +272,7 @@ typedef struct {
|
||||||
const IHTMLElementVtbl *lpHTMLElementVtbl;
|
const IHTMLElementVtbl *lpHTMLElementVtbl;
|
||||||
const IHTMLElement2Vtbl *lpHTMLElement2Vtbl;
|
const IHTMLElement2Vtbl *lpHTMLElement2Vtbl;
|
||||||
|
|
||||||
void (*destructor)(IUnknown*);
|
void (*destructor)(HTMLDOMNode*);
|
||||||
|
|
||||||
nsIDOMHTMLElement *nselem;
|
nsIDOMHTMLElement *nselem;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue