From: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> --- dlls/msxml3/cdata.c | 21 ++++----------------- dlls/msxml3/comment.c | 19 ++++--------------- dlls/msxml3/msxml_private.h | 1 + dlls/msxml3/node.c | 9 +++++++++ dlls/msxml3/text.c | 11 +++-------- 5 files changed, 21 insertions(+), 40 deletions(-) diff --git a/dlls/msxml3/cdata.c b/dlls/msxml3/cdata.c index e298fe5964a..93cd4b1a262 100644 --- a/dlls/msxml3/cdata.c +++ b/dlls/msxml3/cdata.c @@ -455,26 +455,13 @@ static HRESULT WINAPI domcdata_put_data(IXMLDOMCDATASection *iface, BSTR data) return node_put_data(cdata->node, data); } -static HRESULT WINAPI domcdata_get_length( - IXMLDOMCDATASection *iface, - LONG *len) +static HRESULT WINAPI domcdata_get_length(IXMLDOMCDATASection *iface, LONG *length) { - HRESULT hr; - BSTR data; - - TRACE("%p, %p.\n", iface, len); + domcdata *cdata = impl_from_IXMLDOMCDATASection(iface); - if(!len) - return E_INVALIDARG; + TRACE("%p, %p.\n", iface, length); - hr = IXMLDOMCDATASection_get_data(iface, &data); - if(hr == S_OK) - { - *len = SysStringLen(data); - SysFreeString(data); - } - - return S_OK; + return node_get_data_length(cdata->node, length); } static HRESULT WINAPI domcdata_substringData(IXMLDOMCDATASection *iface, LONG offset, LONG count, BSTR *p) diff --git a/dlls/msxml3/comment.c b/dlls/msxml3/comment.c index 6cf8ed096d2..dd7d672d657 100644 --- a/dlls/msxml3/comment.c +++ b/dlls/msxml3/comment.c @@ -463,24 +463,13 @@ static HRESULT WINAPI domcomment_put_data(IXMLDOMComment *iface, BSTR data) return node_put_data(comment->node, data); } -static HRESULT WINAPI domcomment_get_length(IXMLDOMComment *iface, LONG *len) +static HRESULT WINAPI domcomment_get_length(IXMLDOMComment *iface, LONG *length) { - HRESULT hr; - BSTR data; - - TRACE("%p, %p.\n", iface, len); - - if(!len) - return E_INVALIDARG; + domcomment *comment = impl_from_IXMLDOMComment(iface); - hr = IXMLDOMComment_get_data(iface, &data); - if(hr == S_OK) - { - *len = SysStringLen(data); - SysFreeString(data); - } + TRACE("%p, %p.\n", iface, length); - return hr; + return node_get_data_length(comment->node, length); } static HRESULT WINAPI domcomment_substringData(IXMLDOMComment *iface, LONG offset, LONG count, BSTR *p) diff --git a/dlls/msxml3/msxml_private.h b/dlls/msxml3/msxml_private.h index ec45afeabc2..391e1810060 100644 --- a/dlls/msxml3/msxml_private.h +++ b/dlls/msxml3/msxml_private.h @@ -332,6 +332,7 @@ extern void node_move_children(struct domnode *dst, struct domnode *src); extern HRESULT node_split_text(struct domnode *, LONG, IXMLDOMText **); extern HRESULT node_delete_data(struct domnode *, LONG, LONG); extern HRESULT node_substring_data(struct domnode *, LONG, LONG, BSTR *); +extern HRESULT node_get_data_length(struct domnode *, LONG *); extern UINT get_codepage_for_encoding(const WCHAR *encoding); diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c index 48d1ccf3333..cdc6a242a47 100644 --- a/dlls/msxml3/node.c +++ b/dlls/msxml3/node.c @@ -4695,3 +4695,12 @@ HRESULT node_substring_data(struct domnode *node, LONG offset, LONG count, BSTR return *p ? S_OK : E_OUTOFMEMORY; } + +HRESULT node_get_data_length(struct domnode *node, LONG *length) +{ + if (!length) + return E_INVALIDARG; + + *length = SysStringLen(node->data); + return S_OK; +} diff --git a/dlls/msxml3/text.c b/dlls/msxml3/text.c index b5602bfbae9..b81de239ef4 100644 --- a/dlls/msxml3/text.c +++ b/dlls/msxml3/text.c @@ -529,18 +529,13 @@ static HRESULT WINAPI domtext_put_data(IXMLDOMText *iface, BSTR data) return node_put_data(text->node, data); } -static HRESULT WINAPI domtext_get_length(IXMLDOMText *iface, LONG *len) +static HRESULT WINAPI domtext_get_length(IXMLDOMText *iface, LONG *length) { domtext *text = impl_from_IXMLDOMText(iface); - TRACE("%p, %p.\n", iface, len); + TRACE("%p, %p.\n", iface, length); - if (!len) - return E_INVALIDARG; - - *len = SysStringLen(text->node->data); - - return S_OK; + return node_get_data_length(text->node, length); } static HRESULT WINAPI domtext_substringData(IXMLDOMText *iface, LONG offset, LONG count, BSTR *p) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10679