我使用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
泄漏了内存。
我应该在每次解析调用后显式调用某个函数以防止内存泄漏吗?
答案 0 :(得分:0)
我发现我应该在每个解析调用之后调用dom文档上的release:
dom_parser_->parse(xml_buffer);
dom_parser_->getDocument()->release();