static xmldoc_priv * create_priv(void)
{
xmldoc_priv *priv;
- priv = HeapAlloc( GetProcessHeap(), 0, sizeof (*priv) );
+ priv = heap_alloc( sizeof (*priv) );
if(priv)
{
LIST_FOR_EACH_ENTRY_SAFE( orphan, orphan2, &priv->orphans, orphan_entry, entry )
{
xmlFreeNode( orphan->node );
- HeapFree( GetProcessHeap(), 0, orphan );
+ heap_free( orphan );
}
- HeapFree(GetProcessHeap(), 0, doc->_private);
+ heap_free(doc->_private);
xmlFreeDoc(doc);
}
xmldoc_priv *priv = priv_from_xmlDocPtr(doc);
orphan_entry *entry;
- entry = HeapAlloc( GetProcessHeap(), 0, sizeof (*entry) );
+ entry = heap_alloc( sizeof (*entry) );
if(!entry)
return E_OUTOFMEMORY;
if( entry->node == node )
{
list_remove( &entry->entry );
- HeapFree( GetProcessHeap(), 0, entry );
+ heap_free( entry );
return S_OK;
}
}
TRACE("created xmlptr %p\n", xmlnode);
elem_unk = create_element(xmlnode);
- HeapFree(GetProcessHeap(), 0, xml_name);
+ heap_free(xml_name);
hr = IUnknown_QueryInterface(elem_unk, &IID_IXMLDOMElement, (void **)element);
IUnknown_Release(elem_unk);
xml_content = xmlChar_from_wchar(data);
xmlnode = xmlNewText(xml_content);
- HeapFree(GetProcessHeap(), 0, xml_content);
+ heap_free(xml_content);
if(!xmlnode)
return E_FAIL;
xml_content = xmlChar_from_wchar(data);
xmlnode = xmlNewComment(xml_content);
- HeapFree(GetProcessHeap(), 0, xml_content);
+ heap_free(xml_content);
if(!xmlnode)
return E_FAIL;
xml_content = xmlChar_from_wchar(data);
xmlnode = xmlNewCDataBlock(get_doc( This ), xml_content, strlen( (char*)xml_content) );
- HeapFree(GetProcessHeap(), 0, xml_content);
+ heap_free(xml_content);
if(!xmlnode)
return E_FAIL;
TRACE("created xmlptr %p\n", xmlnode);
*pi = (IXMLDOMProcessingInstruction*)create_pi(xmlnode);
- HeapFree(GetProcessHeap(), 0, xml_content);
- HeapFree(GetProcessHeap(), 0, xml_target);
+ heap_free(xml_content);
+ heap_free(xml_target);
return S_OK;
#else
xml_name = xmlChar_from_wchar(name);
xmlnode = (xmlNode *)xmlNewProp(NULL, xml_name, NULL);
- HeapFree(GetProcessHeap(), 0, xml_name);
+ heap_free(xml_name);
if(!xmlnode)
return E_FAIL;
xml_name = xmlChar_from_wchar(name);
xmlnode = xmlNewReference(get_doc( This ), xml_name );
- HeapFree(GetProcessHeap(), 0, xml_name);
+ heap_free(xml_name);
if(!xmlnode)
return E_FAIL;
BSTR tagName,
IXMLDOMNodeList** resultList )
{
+ static const WCHAR xpathformat[] =
+ { '/','/','*','[','l','o','c','a','l','-','n','a','m','e','(',')','=','\'','%','s','\'',']',0 };
domdoc *This = impl_from_IXMLDOMDocument2( iface );
LPWSTR szPattern;
HRESULT hr;
TRACE("(%p)->(%s, %p)\n", This, debugstr_w(tagName), resultList);
- szPattern = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR)*(2+lstrlenW(tagName)+1));
- szPattern[0] = szPattern[1] = '/';
- lstrcpyW(szPattern + 2, tagName);
+ if (tagName[0] == '*' && tagName[1] == 0)
+ {
+ szPattern = heap_alloc(sizeof(WCHAR)*4);
+ szPattern[0] = szPattern[1] = '/';
+ szPattern[2] = '*';
+ szPattern[3] = 0;
+ }
+ else
+ {
+ szPattern = heap_alloc(sizeof(WCHAR)*(20+lstrlenW(tagName)+1));
+ wsprintfW(szPattern, xpathformat, tagName);
+ }
hr = queryresult_create((xmlNodePtr)get_doc(This), szPattern, resultList);
- HeapFree(GetProcessHeap(), 0, szPattern);
+ heap_free(szPattern);
return hr;
}
break;
}
- HeapFree(GetProcessHeap(), 0, xml_name);
+ heap_free(xml_name);
if(xmlnode && *node)
{
LPSTR str;
len = WideCharToMultiByte( CP_UTF8, 0, bstr, blen, NULL, 0, NULL, NULL );
- str = HeapAlloc( GetProcessHeap(), 0, len );
+ str = heap_alloc( len );
if ( !str )
return FALSE;
WideCharToMultiByte( CP_UTF8, 0, bstr, blen, str, len, NULL, NULL );
if ( bstrXML && bstr_to_utf8( bstrXML, &str, &len ) )
{
xmldoc = doparse( str, len );
- HeapFree( GetProcessHeap(), 0, str );
+ heap_free( str );
if ( !xmldoc )
This->error = E_FAIL;
else
{
domdoc *doc;
- doc = HeapAlloc( GetProcessHeap(), 0, sizeof (*doc) );
+ doc = heap_alloc( sizeof (*doc) );
if( !doc )
return E_OUTOFMEMORY;