From 8f05c7de54336daefb214a754de35367098b6510 Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Mon, 7 Jul 2014 22:25:03 +0200 Subject: Implemented custom xercesc::DOMDocument deleter * pointers to xercesc::DOMDocument were manually released ** this is now solved using a custom deleter for the appropriate std::unqiue_ptr template specialization * added matching factory method to DomDocumentCache * updated external function implementations accordingly ** "constructDocument" is now expected to return a DomDocumentCache::document_ptr instance * updated TransformerFacade accordingly * this change was implemented to get rid of the manual memory management required by xalan / xerces --- src/support/dom/document_cache_item.cc | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'src/support/dom/document_cache_item.cc') diff --git a/src/support/dom/document_cache_item.cc b/src/support/dom/document_cache_item.cc index 9798bfa..a684d97 100644 --- a/src/support/dom/document_cache_item.cc +++ b/src/support/dom/document_cache_item.cc @@ -2,20 +2,16 @@ namespace InputXSLT { -DomDocumentCache::item::item(xercesc::DOMDocument* document): +DomDocumentCache::item::item(document_ptr&& document): + document_(std::move(document)), parser_(), dom_support_(parser_), - document_(document), parsed_source_( - document_, + document_.get(), parser_, dom_support_ ) { } -DomDocumentCache::item::~item() { - this->document_->release(); -} - xalan::XalanDocument* DomDocumentCache::item::getXalanDocument() { return this->parsed_source_.getDocument(); } -- cgit v1.2.3