diff options
Diffstat (limited to 'sax')
-rw-r--r-- | sax/source/fastparser/fastparser.cxx | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sax/source/fastparser/fastparser.cxx b/sax/source/fastparser/fastparser.cxx index 9d13d25ce385..6bfa1ce0e205 100644 --- a/sax/source/fastparser/fastparser.cxx +++ b/sax/source/fastparser/fastparser.cxx @@ -676,7 +676,13 @@ FastSaxParserImpl::~FastSaxParserImpl() if( mxDocumentLocator.is() ) mxDocumentLocator->dispose(); for ( size_t i = 0; i < m_TemporalEntities.size(); ++i ) - if (m_TemporalEntities[i] != nullptr) xmlFree(m_TemporalEntities[i]); + { + if (!m_TemporalEntities[i]) + continue; + xmlNodePtr pPtr = reinterpret_cast<xmlNodePtr>(m_TemporalEntities[i]); + xmlUnlinkNode(pPtr); + xmlFreeNode(pPtr); + } } void FastSaxParserImpl::DefineNamespace( const OString& rPrefix, const OUString& namespaceURL ) |