解析函数中的 XercesDOMParser 内存泄漏

XercesDOMParser memory leak in parse function

我在使用 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 泄漏了内存。

我是否应该在每次解析调用后显式调用一些函数以防止内存泄漏?

我发现我应该在每次解析调用后在 dom 文档上调用释放:

dom_parser_->parse(xml_buffer);
dom_parser_->getDocument()->release();