From f5a2f4a2b9bcee4cec04899953d612afe7422c0f Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Fri, 12 Feb 2010 03:59:14 +0300 Subject: [PATCH] msxml3: Reimplement IXMLDOMDocument::createDocumentFragment() over ::createNode(). --- dlls/msxml3/domdoc.c | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/dlls/msxml3/domdoc.c b/dlls/msxml3/domdoc.c index 6c808442c98..f999e12aa26 100644 --- a/dlls/msxml3/domdoc.c +++ b/dlls/msxml3/domdoc.c @@ -1065,27 +1065,16 @@ static HRESULT WINAPI domdoc_createElement( static HRESULT WINAPI domdoc_createDocumentFragment( IXMLDOMDocument2 *iface, - IXMLDOMDocumentFragment** docFrag ) + IXMLDOMDocumentFragment** frag ) { domdoc *This = impl_from_IXMLDOMDocument2( iface ); - xmlNodePtr xmlnode; + VARIANT type; - TRACE("%p\n", iface); + TRACE("(%p)->(%p)\n", This, frag); - if(!docFrag) - return E_INVALIDARG; - - *docFrag = NULL; - - xmlnode = xmlNewDocFragment(get_doc( This ) ); - - if(!xmlnode) - return E_FAIL; - - xmldoc_add_orphan(xmlnode->doc, xmlnode); - *docFrag = (IXMLDOMDocumentFragment*)create_doc_fragment(xmlnode); - - return S_OK; + V_VT(&type) = VT_I1; + V_I1(&type) = NODE_DOCUMENT_FRAGMENT; + return IXMLDOMDocument_createNode(iface, type, NULL, NULL, (IXMLDOMNode**)frag); }