From 6d353960542e5c95f29d45b9359db25945a414a4 Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Sat, 25 Apr 2020 20:42:08 +0200 Subject: Fix std::unique_ptr custom deleter issue Somehow the previous custom deleter for xercesc::DOMDocument fails invokable assertions planet a compiler update. A lambda function with the same signature wors for some reason… --- src/support/dom/document_cache.cc | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/support/dom/document_cache.cc') diff --git a/src/support/dom/document_cache.cc b/src/support/dom/document_cache.cc index c000aef..0133234 100644 --- a/src/support/dom/document_cache.cc +++ b/src/support/dom/document_cache.cc @@ -11,7 +11,10 @@ namespace InputXSLT { auto DomDocumentCache::createDocument() -> document_ptr { return document_ptr( - xercesc::DOMImplementation::getImplementation()->createDocument() + xercesc::DOMImplementation::getImplementation()->createDocument(), + [](xercesc::DOMDocument* ptr) { + ptr->release(); + } ); } @@ -21,7 +24,10 @@ auto DomDocumentCache::createDocument(const std::string& name) -> document_ptr { nullptr, *XercesStringGuard(name), nullptr - ) + ), + [](xercesc::DOMDocument* ptr) { + ptr->release(); + } ); } @@ -41,9 +47,4 @@ xalan::XalanDocument* DomDocumentCache::create(document_ptr&& document) { return this->cache_.top()->getXalanDocument(); } -void DomDocumentCache::document_deleter::operator()( - xercesc::DOMDocument* document) { - document->release(); -} - } -- cgit v1.2.3