Module: wine Branch: master Commit: 791dd9558e67cee1b26c4029f5ef687ea2e32527 URL: http://source.winehq.org/git/wine.git/?a=commit;h=791dd9558e67cee1b26c4029f5... Author: Jacek Caban <jacek(a)codeweavers.com> Date: Wed Apr 30 18:18:24 2008 +0200 mshtml: Moved IDispatchEx initialization to HTMLElement_Init. --- dlls/mshtml/htmlelem.c | 10 +++++----- dlls/mshtml/htmlinput.c | 3 +-- dlls/mshtml/htmloption.c | 7 +++---- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c index f9b416a..f87bb44 100644 --- a/dlls/mshtml/htmlelem.c +++ b/dlls/mshtml/htmlelem.c @@ -1297,12 +1297,14 @@ static dispex_static_data_t HTMLElement_dispex = { void HTMLElement_Init(HTMLElement *This) { - This->node.vtbl = &HTMLElementImplVtbl; This->lpHTMLElementVtbl = &HTMLElementVtbl; ConnectionPointContainer_Init(&This->cp_container, (IUnknown*)HTMLELEM(This)); HTMLElement2_Init(This); + + if(!This->node.dispex.data) + init_dispex(&This->node.dispex, (IUnknown*)HTMLELEM(This), &HTMLElement_dispex); } HTMLElement *HTMLElement_Create(nsIDOMNode *nsnode) @@ -1351,15 +1353,13 @@ HTMLElement *HTMLElement_Create(nsIDOMNode *nsnode) if(!ret) { ret = heap_alloc_zero(sizeof(HTMLElement)); HTMLElement_Init(ret); - } + ret->node.vtbl = &HTMLElementImplVtbl; + } nsAString_Finish(&class_name_str); ret->nselem = nselem; - if(!ret->node.dispex.data) - init_dispex(&ret->node.dispex, (IUnknown*)HTMLELEM(ret), &HTMLElement_dispex); - return ret; } diff --git a/dlls/mshtml/htmlinput.c b/dlls/mshtml/htmlinput.c index 3ba954f..c4f2750 100644 --- a/dlls/mshtml/htmlinput.c +++ b/dlls/mshtml/htmlinput.c @@ -1078,12 +1078,11 @@ HTMLElement *HTMLInputElement_Create(nsIDOMHTMLElement *nselem) HTMLInputElement *ret = heap_alloc_zero(sizeof(HTMLInputElement)); nsresult nsres; - HTMLElement_Init(&ret->element); - ret->lpHTMLInputElementVtbl = &HTMLInputElementVtbl; ret->element.node.vtbl = &HTMLInputElementImplVtbl; init_dispex(&ret->element.node.dispex, (IUnknown*)HTMLINPUT(ret), &HTMLInputElement_dispex); + HTMLElement_Init(&ret->element); nsres = nsIDOMHTMLElement_QueryInterface(nselem, &IID_nsIDOMHTMLInputElement, (void**)&ret->nsinput); diff --git a/dlls/mshtml/htmloption.c b/dlls/mshtml/htmloption.c index a642295..0753810 100644 --- a/dlls/mshtml/htmloption.c +++ b/dlls/mshtml/htmloption.c @@ -350,17 +350,16 @@ HTMLElement *HTMLOptionElement_Create(nsIDOMHTMLElement *nselem) HTMLOptionElement *ret = heap_alloc_zero(sizeof(HTMLOptionElement)); nsresult nsres; - HTMLElement_Init(&ret->element); - ret->lpHTMLOptionElementVtbl = &HTMLOptionElementVtbl; ret->element.node.vtbl = &HTMLOptionElementImplVtbl; + HTMLElement_Init(&ret->element); + init_dispex(&ret->element.node.dispex, (IUnknown*)HTMLOPTION(ret), &HTMLOptionElement_dispex); + nsres = nsIDOMHTMLElement_QueryInterface(nselem, &IID_nsIDOMHTMLOptionElement, (void**)&ret->nsoption); if(NS_FAILED(nsres)) ERR("Could not get nsIDOMHTMLOptionElement interface: %08x\n", nsres); - init_dispex(&ret->element.node.dispex, (IUnknown*)HTMLOPTION(ret), &HTMLOptionElement_dispex); - return &ret->element; }