Kaydet (Commit) 6e132589 authored tarafından Caolán McNamara's avatar Caolán McNamara

CID#735395 potential memory leak

Change-Id: Ica07e23920d751757ab5d14d5216615d5fcdbfd9
üst 327701f6
......@@ -90,8 +90,7 @@ public:
~SmCursor(){
SetClipboard();
if(pGraph)
delete pGraph;
delete pGraph;
pGraph = NULL;
}
......
......@@ -318,7 +318,7 @@ class SmCaretPosGraphBuildingVisitor : public SmVisitor
public:
/** Builds a caret position graph for pRootNode */
SmCaretPosGraphBuildingVisitor( SmNode* pRootNode );
virtual ~SmCaretPosGraphBuildingVisitor() {}
virtual ~SmCaretPosGraphBuildingVisitor();
void Visit( SmTableNode* pNode );
void Visit( SmBraceNode* pNode );
void Visit( SmBracebodyNode* pNode );
......@@ -346,8 +346,11 @@ public:
void Visit( SmRootSymbolNode* pNode );
void Visit( SmRectangleNode* pNode );
void Visit( SmVerticalBraceNode* pNode );
SmCaretPosGraph* Graph( ){
return pGraph;
SmCaretPosGraph* takeGraph()
{
SmCaretPosGraph *pRet = pGraph;
pGraph = 0;
return pRet;
}
private:
SmCaretPosGraphEntry* pRightMost;
......
......@@ -39,8 +39,7 @@ SmCaretPosGraphEntry* SmCaretPosGraph::Add(SmCaretPosGraphEntry entry){
}
SmCaretPosGraph::~SmCaretPosGraph(){
if(pNext)
delete pNext;
delete pNext;
pNext = NULL;
}
......
......@@ -120,10 +120,9 @@ void SmCursor::BuildGraph(){
anchor = NULL;
position = NULL;
}
pGraph = NULL;
//Build the new graph
pGraph = SmCaretPosGraphBuildingVisitor(pTree).Graph();
pGraph = SmCaretPosGraphBuildingVisitor(pTree).takeGraph();
//Restore anchor and position pointers
if(_anchor.IsValid() || _position.IsValid()){
......
......@@ -990,6 +990,11 @@ SmCaretPosGraphBuildingVisitor::SmCaretPosGraphBuildingVisitor( SmNode* pRootNod
pRootNode->Accept(this);
}
SmCaretPosGraphBuildingVisitor::~SmCaretPosGraphBuildingVisitor()
{
delete pGraph;
}
void SmCaretPosGraphBuildingVisitor::Visit( SmLineNode* pNode ){
SmNodeIterator it( pNode );
while( it.Next( ) ){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment