From 2de9456c84d1fb5a7e779a49c370946f1aabb2c5 Mon Sep 17 00:00:00 2001 From: bloodstalker Date: Fri, 19 May 2017 04:07:49 +0430 Subject: fixed a tinyxml2 assert being thrown when the xml report ended up being empty --- mutator_report.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/mutator_report.cpp b/mutator_report.cpp index e61cb5d..0eef3ca 100644 --- a/mutator_report.cpp +++ b/mutator_report.cpp @@ -47,6 +47,11 @@ XMLReport::XMLReport() #endif } +XMLReport::~XMLReport() +{ + XMLReportDoc.InsertEndChild(RootPointer); +} + void XMLReport::XMLCreateReport() { XMLReportDoc.InsertFirstChild(RootPointer); @@ -138,13 +143,25 @@ void XMLReport::XMLAddNode(unsigned Line, unsigned Column, std::string FileName, RootPointer->InsertEndChild(MisraElement); } +bool XMLReport::isReportEmpty(void) +{ + return false; +} + void XMLReport::SaveReport(void) { + if(this->isReportEmpty()) + { + return void(); + } + + XMLReportDoc.InsertEndChild(RootPointer); + XMLError XMLErrorResult = XMLReportDoc.SaveFile("./test/misrareport.xml"); if (XMLErrorResult != XML_SUCCESS) { - std::cout << "could not write xml misra report." << std::endl; + std::cerr << "could not write xml misra report.\n"; } } /***************************************************End of XMLReport**************************************************/ -- cgit v1.2.3