Jacek Caban : mshtml: Initialize HTMLElement in the beginning of constructors.

Alexandre Julliard julliard at winehq.org
Tue Dec 4 13:25:21 CST 2007


Module: wine
Branch: master
Commit: a9e77575b36bbae8116b805826f864d6384ea949
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a9e77575b36bbae8116b805826f864d6384ea949

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Dec  4 13:37:00 2007 +0100

mshtml: Initialize HTMLElement in the beginning of constructors.

---

 dlls/mshtml/htmlanchor.c     |    2 ++
 dlls/mshtml/htmlbody.c       |    4 ++--
 dlls/mshtml/htmlelem.c       |   13 +++++++++----
 dlls/mshtml/htmlinput.c      |    2 ++
 dlls/mshtml/htmloption.c     |    3 +++
 dlls/mshtml/htmlselect.c     |    2 ++
 dlls/mshtml/htmltable.c      |    2 ++
 dlls/mshtml/htmltextarea.c   |    2 ++
 dlls/mshtml/htmltextcont.c   |    2 ++
 dlls/mshtml/mshtml_private.h |    1 +
 10 files changed, 27 insertions(+), 6 deletions(-)

diff --git a/dlls/mshtml/htmlanchor.c b/dlls/mshtml/htmlanchor.c
index 1fe43d0..61ab6cd 100644
--- a/dlls/mshtml/htmlanchor.c
+++ b/dlls/mshtml/htmlanchor.c
@@ -486,6 +486,8 @@ HTMLElement *HTMLAnchorElement_Create(nsIDOMHTMLElement *nselem)
 {
     HTMLAnchorElement *ret = mshtml_alloc(sizeof(HTMLAnchorElement));
 
+    HTMLElement_Init(&ret->element);
+
     ret->lpHTMLAnchorElementVtbl = &HTMLAnchorElementVtbl;
     ret->element.node.vtbl = &HTMLAnchorElementImplVtbl;
 
diff --git a/dlls/mshtml/htmlbody.c b/dlls/mshtml/htmlbody.c
index b1b6c4c..4f8e093 100644
--- a/dlls/mshtml/htmlbody.c
+++ b/dlls/mshtml/htmlbody.c
@@ -501,11 +501,11 @@ HTMLElement *HTMLBodyElement_Create(nsIDOMHTMLElement *nselem)
 
     TRACE("(%p)->(%p)\n", ret, nselem);
 
+    HTMLTextContainer_Init(&ret->textcont);
+
     ret->lpHTMLBodyElementVtbl = &HTMLBodyElementVtbl;
     ret->textcont.element.node.vtbl = &HTMLBodyElementImplVtbl;
 
-    HTMLTextContainer_Init(&ret->textcont);
-
     ConnectionPointContainer_Init(&ret->cp_container, (IUnknown*)HTMLBODY(ret));
     ConnectionPoint_Init(&ret->cp_propnotif, &ret->cp_container, &IID_IPropertyNotifySink);
     ConnectionPoint_Init(&ret->cp_txtcontevents, &ret->cp_container, &DIID_HTMLTextContainerEvents);
diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c
index cbe9bfd..bf0ba33 100644
--- a/dlls/mshtml/htmlelem.c
+++ b/dlls/mshtml/htmlelem.c
@@ -1280,6 +1280,14 @@ static const NodeImplVtbl HTMLElementImplVtbl = {
     HTMLElement_destructor
 };
 
+void HTMLElement_Init(HTMLElement *This)
+{
+    This->node.vtbl = &HTMLElementImplVtbl;
+    This->lpHTMLElementVtbl = &HTMLElementVtbl;
+
+    HTMLElement2_Init(This);
+}
+
 HTMLElement *HTMLElement_Create(nsIDOMNode *nsnode)
 {
     nsIDOMHTMLElement *nselem;
@@ -1322,16 +1330,13 @@ HTMLElement *HTMLElement_Create(nsIDOMNode *nsnode)
 
     if(!ret) {
         ret = mshtml_alloc(sizeof(HTMLElement));
-        ret->node.vtbl = &HTMLElementImplVtbl;
+        HTMLElement_Init(ret);
     }
 
     nsAString_Finish(&class_name_str);
 
-    ret->lpHTMLElementVtbl = &HTMLElementVtbl;
     ret->nselem = nselem;
 
-    HTMLElement2_Init(ret);
-
     return ret;
 }
 
diff --git a/dlls/mshtml/htmlinput.c b/dlls/mshtml/htmlinput.c
index 5fc5dd3..7f6c8c6 100644
--- a/dlls/mshtml/htmlinput.c
+++ b/dlls/mshtml/htmlinput.c
@@ -1062,6 +1062,8 @@ HTMLElement *HTMLInputElement_Create(nsIDOMHTMLElement *nselem)
     HTMLInputElement *ret = mshtml_alloc(sizeof(HTMLInputElement));
     nsresult nsres;
 
+    HTMLElement_Init(&ret->element);
+
     ret->lpHTMLInputElementVtbl = &HTMLInputElementVtbl;
     ret->element.node.vtbl = &HTMLInputElementImplVtbl;
 
diff --git a/dlls/mshtml/htmloption.c b/dlls/mshtml/htmloption.c
index f800fed..579725e 100644
--- a/dlls/mshtml/htmloption.c
+++ b/dlls/mshtml/htmloption.c
@@ -340,6 +340,8 @@ HTMLElement *HTMLOptionElement_Create(nsIDOMHTMLElement *nselem)
     HTMLOptionElement *ret = mshtml_alloc(sizeof(HTMLOptionElement));
     nsresult nsres;
 
+    HTMLElement_Init(&ret->element);
+
     ret->lpHTMLOptionElementVtbl = &HTMLOptionElementVtbl;
     ret->element.node.vtbl = &HTMLOptionElementImplVtbl;
 
@@ -511,6 +513,7 @@ HTMLOptionElementFactory *HTMLOptionElementFactory_Create(HTMLDocument *doc)
     HTMLOptionElementFactory *ret;
 
     ret = mshtml_alloc(sizeof(HTMLOptionElementFactory));
+
     ret->lpHTMLOptionElementFactoryVtbl = &HTMLOptionElementFactoryVtbl;
     ret->ref = 1;
     ret->doc = doc;
diff --git a/dlls/mshtml/htmlselect.c b/dlls/mshtml/htmlselect.c
index d1ae86d..6395bc3 100644
--- a/dlls/mshtml/htmlselect.c
+++ b/dlls/mshtml/htmlselect.c
@@ -429,6 +429,8 @@ HTMLElement *HTMLSelectElement_Create(nsIDOMHTMLElement *nselem)
     HTMLSelectElement *ret = mshtml_alloc(sizeof(HTMLSelectElement));
     nsresult nsres;
 
+    HTMLElement_Init(&ret->element);
+
     ret->lpHTMLSelectElementVtbl = &HTMLSelectElementVtbl;
     ret->element.node.vtbl = &HTMLSelectElementImplVtbl;
     
diff --git a/dlls/mshtml/htmltable.c b/dlls/mshtml/htmltable.c
index 373ffac..d0b0a28 100644
--- a/dlls/mshtml/htmltable.c
+++ b/dlls/mshtml/htmltable.c
@@ -550,6 +550,8 @@ HTMLElement *HTMLTable_Create(nsIDOMHTMLElement *nselem)
 {
     HTMLTable *ret = mshtml_alloc(sizeof(HTMLTable));
 
+    HTMLElement_Init(&ret->element);
+
     ret->element.node.vtbl = &HTMLTableImplVtbl;
     ret->lpHTMLTableVtbl = &HTMLTableVtbl;
 
diff --git a/dlls/mshtml/htmltextarea.c b/dlls/mshtml/htmltextarea.c
index c5d8287..fbb7df8 100644
--- a/dlls/mshtml/htmltextarea.c
+++ b/dlls/mshtml/htmltextarea.c
@@ -409,6 +409,8 @@ HTMLElement *HTMLTextAreaElement_Create(nsIDOMHTMLElement *nselem)
     HTMLTextAreaElement *ret = mshtml_alloc(sizeof(HTMLTextAreaElement));
     nsresult nsres;
 
+    HTMLElement_Init(&ret->element);
+
     ret->lpHTMLTextAreaElementVtbl = &HTMLTextAreaElementVtbl;
     ret->element.node.vtbl = &HTMLTextAreaElementImplVtbl;
 
diff --git a/dlls/mshtml/htmltextcont.c b/dlls/mshtml/htmltextcont.c
index 07c0081..8076646 100644
--- a/dlls/mshtml/htmltextcont.c
+++ b/dlls/mshtml/htmltextcont.c
@@ -213,5 +213,7 @@ static const IHTMLTextContainerVtbl HTMLTextContainerVtbl = {
 
 void HTMLTextContainer_Init(HTMLTextContainer *This)
 {
+    HTMLElement_Init(&This->element);
+
     This->lpHTMLTextContainerVtbl = &HTMLTextContainerVtbl;
 }
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index b284d86..198486f 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -445,6 +445,7 @@ HTMLElement *HTMLSelectElement_Create(nsIDOMHTMLElement*);
 HTMLElement *HTMLTable_Create(nsIDOMHTMLElement*);
 HTMLElement *HTMLTextAreaElement_Create(nsIDOMHTMLElement*);
 
+void HTMLElement_Init(HTMLElement*);
 void HTMLElement2_Init(HTMLElement*);
 void HTMLTextContainer_Init(HTMLTextContainer*);
 




More information about the wine-cvs mailing list