From: Jacek Caban jacek@codeweavers.com
--- dlls/mshtml/htmltextnode.c | 20 +++++++++++--------- dlls/mshtml/mshtml_private.h | 1 + dlls/mshtml/tests/documentmode.js | 2 ++ 3 files changed, 14 insertions(+), 9 deletions(-)
diff --git a/dlls/mshtml/htmltextnode.c b/dlls/mshtml/htmltextnode.c index 06dac8fff24..d6f914dc44d 100644 --- a/dlls/mshtml/htmltextnode.c +++ b/dlls/mshtml/htmltextnode.c @@ -257,26 +257,28 @@ static const NodeImplVtbl HTMLDOMTextNodeImplVtbl = { .clone = HTMLDOMTextNode_clone };
-static const dispex_static_data_vtbl_t HTMLDOMTextNode_dispex_vtbl = { +static const dispex_static_data_vtbl_t Text_dispex_vtbl = { .query_interface = HTMLDOMTextNode_query_interface, .destructor = HTMLDOMNode_destructor, .traverse = HTMLDOMNode_traverse, .unlink = HTMLDOMNode_unlink };
-static const tid_t HTMLDOMTextNode_iface_tids[] = { +static const tid_t Text_iface_tids[] = { IHTMLDOMNode_tid, IHTMLDOMNode2_tid, IHTMLDOMTextNode_tid, IHTMLDOMTextNode2_tid, 0 }; -static dispex_static_data_t HTMLDOMTextNode_dispex = { - "Text", - &HTMLDOMTextNode_dispex_vtbl, - DispHTMLDOMTextNode_tid, - HTMLDOMTextNode_iface_tids, - HTMLDOMNode_init_dispex_info +dispex_static_data_t Text_dispex = { + .name = "Text", + .id = PROT_Text, + .prototype_id = PROT_Node, + .vtbl = &Text_dispex_vtbl, + .disp_tid = DispHTMLDOMTextNode_tid, + .iface_tids = Text_iface_tids, + .init_info = HTMLDOMNode_init_dispex_info, };
HRESULT HTMLDOMTextNode_Create(HTMLDocumentNode *doc, nsIDOMNode *nsnode, HTMLDOMNode **node) @@ -292,7 +294,7 @@ HRESULT HTMLDOMTextNode_Create(HTMLDocumentNode *doc, nsIDOMNode *nsnode, HTMLDO ret->IHTMLDOMTextNode_iface.lpVtbl = &HTMLDOMTextNodeVtbl; ret->IHTMLDOMTextNode2_iface.lpVtbl = &HTMLDOMTextNode2Vtbl;
- HTMLDOMNode_Init(doc, &ret->node, nsnode, &HTMLDOMTextNode_dispex); + HTMLDOMNode_Init(doc, &ret->node, nsnode, &Text_dispex);
nsres = nsIDOMNode_QueryInterface(nsnode, &IID_nsIDOMText, (void**)&ret->nstext); assert(nsres == NS_OK && (nsIDOMNode*)ret->nstext == ret->node.nsnode); diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h index 16bc67ac12b..2c194c2925b 100644 --- a/dlls/mshtml/mshtml_private.h +++ b/dlls/mshtml/mshtml_private.h @@ -449,6 +449,7 @@ typedef struct { X(SVGTextContentElement) \ X(SVGTextPositioningElement) \ X(Storage) \ + X(Text) \ X(Window) \ X(XMLHttpRequest)
diff --git a/dlls/mshtml/tests/documentmode.js b/dlls/mshtml/tests/documentmode.js index c7d3780b891..5a7316baaaa 100644 --- a/dlls/mshtml/tests/documentmode.js +++ b/dlls/mshtml/tests/documentmode.js @@ -3211,4 +3211,6 @@ sync_test("prototypes", function() { check(SVGTextContentElement.prototype, SVGElement.prototype, "SVGTextPositioningElement prototype"); check(document.doctype, DocumentType.prototype, "doctype"); check(DocumentType.prototype, Node.prototype, "doctype prototype"); + check(document.createTextNode(""), Text.prototype, "text"); + check(Text.prototype, Node.prototype, "text prototype"); });