msxml3: Simplify IXMLDOMNodeMap::removeNamedItem.

This commit is contained in:
Michael Karcher 2008-11-02 13:34:44 +01:00 committed by Alexandre Julliard
parent 813da72423
commit 2adcef7954
1 changed files with 9 additions and 7 deletions

View File

@ -289,7 +289,7 @@ static HRESULT WINAPI xmlnodemap_removeNamedItem(
{
xmlnodemap *This = impl_from_IXMLDOMNamedNodeMap( iface );
xmlChar *element_name;
xmlAttrPtr attr, attr_copy;
xmlAttrPtr attr;
xmlNodePtr node;
TRACE("%p %s %p\n", This, debugstr_w(name), namedItem );
@ -314,13 +314,15 @@ static HRESULT WINAPI xmlnodemap_removeNamedItem(
if ( namedItem )
{
attr_copy = xmlCopyProp( NULL, attr );
attr_copy->doc = node->doc;
/* The cast here is OK, xmlFreeNode handles xmlAttrPtr pointers */
xmldoc_add_orphan(attr_copy->doc, (xmlNodePtr) attr_copy);
*namedItem = create_node( (xmlNodePtr) attr_copy );
xmlUnlinkNode( (xmlNodePtr) attr );
xmldoc_add_orphan( attr->doc, (xmlNodePtr) attr );
*namedItem = create_node( (xmlNodePtr) attr );
}
else
{
if( xmlRemoveProp( attr ) == -1 )
ERR("xmlRemoveProp failed\n");
}
xmlRemoveProp( attr );
return S_OK;
}