Merge pull request #149 from milipili/xml-memory-leaks

[BUG_FIXED] fixed minor memory leak when exporting the parameters to XML.
pull/157/head
Don HO 10 years ago
commit ea4b409c3d

@ -3386,28 +3386,28 @@ bool NppParameters::writeProjectPanelsSettings() const
TiXmlNode *nppRoot = _pXmlUserDoc->FirstChild(TEXT("NotepadPlus")); TiXmlNode *nppRoot = _pXmlUserDoc->FirstChild(TEXT("NotepadPlus"));
if (!nppRoot) return false; if (!nppRoot) return false;
TiXmlNode *projPanelRootNode = nppRoot->FirstChildElement(TEXT("ProjectPanels")); TiXmlNode *oldProjPanelRootNode = nppRoot->FirstChildElement(TEXT("ProjectPanels"));
if (projPanelRootNode) if (nullptr != oldProjPanelRootNode)
{ {
// Erase the Project Panel root // Erase the Project Panel root
nppRoot->RemoveChild(projPanelRootNode); nppRoot->RemoveChild(oldProjPanelRootNode);
} }
// Create the Project Panel root // Create the Project Panel root
projPanelRootNode = new TiXmlElement(TEXT("ProjectPanels")); TiXmlElement projPanelRootNode{TEXT("ProjectPanels")};
// Add 3 Project Panel parameters // Add 3 Project Panel parameters
for (int i = 0 ; i < 3 ; ++i) for (int i = 0 ; i < 3 ; ++i)
{ {
TiXmlElement projPanelNode(TEXT("ProjectPanel")); TiXmlElement projPanelNode{TEXT("ProjectPanel")};
(projPanelNode.ToElement())->SetAttribute(TEXT("id"), i); (projPanelNode.ToElement())->SetAttribute(TEXT("id"), i);
(projPanelNode.ToElement())->SetAttribute(TEXT("workSpaceFile"), _workSpaceFilePathes[i]); (projPanelNode.ToElement())->SetAttribute(TEXT("workSpaceFile"), _workSpaceFilePathes[i]);
(projPanelRootNode->ToElement())->InsertEndChild(projPanelNode); (projPanelRootNode.ToElement())->InsertEndChild(projPanelNode);
} }
// (Re)Insert the Project Panel root // (Re)Insert the Project Panel root
(nppRoot->ToElement())->InsertEndChild(*projPanelRootNode); (nppRoot->ToElement())->InsertEndChild(projPanelRootNode);
return true; return true;
} }

Loading…
Cancel
Save