解析函数中的XercesDOMParser内存泄漏

时间:2018-02-09 09:48:53

标签: c++ memory-leaks xerces-c

我使用XercesDomParser使用以下代码示例进行内存泄漏:

//setup parser
auto dom_parser_ = std::make_unique<xercesc::XercesDOMParser>();
dom_parser_->setErrorHandler(error_handler_.get());
dom_parser_->setValidationScheme(xercesc::XercesDOMParser::Val_Always);
dom_parser_->setDoNamespaces(true);
dom_parser_->setDoSchema(true);
dom_parser_->setValidationSchemaFullChecking(true);

//use parser multiple times with different xml param 
xercesc::MemBufInputSource xml_buffer((const XMLByte *)xml,
                                       xml.size(), "dummy");

dom_parser_->parse(xml_buffer);

我能够发现函数XercesDOMParser::parse泄漏了内存。

我应该在每次解析调用后显式调用某个函数以防止内存泄漏吗?

1 个答案:

答案 0 :(得分:0)

我发现我应该在每个解析调用之后调用dom文档上的release:

dom_parser_->parse(xml_buffer);
dom_parser_->getDocument()->release();
相关问题