static LONG cache_entry_release(cache_entry* entry) { LONG ref = InterlockedDecrement(&entry->ref); TRACE("(%p)->(%d)\n", entry, ref); if (ref == 0) { if (entry->type == CacheEntryType_XSD) { xmldoc_release(entry->doc); entry->schema->doc = NULL; xmlSchemaFree(entry->schema); } else if (entry->type == CacheEntryType_XDR) { xmldoc_release(entry->doc); xmldoc_release(entry->schema->doc); entry->schema->doc = NULL; xmlSchemaFree(entry->schema); } heap_free(entry); } return ref; }
static LONG cache_entry_release(cache_entry* entry) { LONG ref = InterlockedDecrement(&entry->ref); TRACE("%p new ref %d\n", entry, ref); if (ref == 0) { if (entry->type == SCHEMA_TYPE_XSD) { xmldoc_release(entry->doc); entry->schema->doc = NULL; xmlSchemaFree(entry->schema); heap_free(entry); } else /* SCHEMA_TYPE_XDR */ { xmldoc_release(entry->doc); xmldoc_release(entry->schema->doc); entry->schema->doc = NULL; xmlSchemaFree(entry->schema); heap_free(entry); } } return ref; }
void destroy_xmlnode(xmlnode *This) { if(This->node) { xmlnode_release(This->node); xmldoc_release(This->node->doc); } release_dispex(&This->dispex); }
static ULONG WINAPI xmlnodelist_Release( IXMLDOMNodeList *iface ) { xmlnodelist *This = impl_from_IXMLDOMNodeList( iface ); ULONG ref; ref = InterlockedDecrement( &This->ref ); if ( ref == 0 ) { xmldoc_release( This->parent->doc ); heap_free( This ); } return ref; }
static ULONG WINAPI xmlnodemap_Release( IXMLDOMNamedNodeMap *iface ) { xmlnodemap *This = impl_from_IXMLDOMNamedNodeMap( iface ); ULONG ref = InterlockedDecrement( &This->ref ); TRACE("(%p)->(%d)\n", This, ref); if ( ref == 0 ) { xmldoc_release( This->node->doc ); heap_free( This ); } return ref; }
static ULONG WINAPI xmlnodelist_Release( IXMLDOMNodeList *iface ) { xmlnodelist *This = impl_from_IXMLDOMNodeList( iface ); ULONG ref = InterlockedDecrement( &This->ref ); TRACE("(%p)->(%d)\n", This, ref); if ( ref == 0 ) { xmldoc_release( This->parent->doc ); if (This->enumvariant) IEnumVARIANT_Release(This->enumvariant); heap_free( This ); } return ref; }
static ULONG WINAPI queryresult_Release( IXMLDOMNodeList *iface ) { queryresult *This = impl_from_IXMLDOMNodeList( iface ); ULONG ref; ref = InterlockedDecrement(&This->ref); if ( ref == 0 ) { xmlXPathFreeObject(This->result); xmldoc_release(This->node->doc); heap_free(This); } return ref; }
static ULONG WINAPI xmlnodelist_Release( IXMLDOMNodeList *iface ) { xmlnodelist *This = impl_from_IXMLDOMNodeList( iface ); ULONG ref; ref = InterlockedDecrement( &This->ref ); if ( ref == 0 ) { free_xslt_info( &This->xinfo ); if(This->node) xmldoc_release( This->node->doc ); HeapFree( GetProcessHeap(), 0, This ); } return ref; }
static ULONG WINAPI domselection_Release( IXMLDOMSelection *iface ) { domselection *This = impl_from_IXMLDOMSelection( iface ); ULONG ref = InterlockedDecrement(&This->ref); TRACE("(%p)->(%d)\n", This, ref); if ( ref == 0 ) { xmlXPathFreeObject(This->result); xmldoc_release(This->node->doc); heap_free(This); } return ref; }