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

ofz#4571 more Direct-leaks

Change-Id: If845238c3c107a9edc95dc3663bf4c178e65ebc7
Reviewed-on: https://gerrit.libreoffice.org/46180Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 4aa06004
...@@ -1636,9 +1636,9 @@ SmStructureNode *SmParser::DoUnOper() ...@@ -1636,9 +1636,9 @@ SmStructureNode *SmParser::DoUnOper()
bool bIsPostfix = eType == TFACT; bool bIsPostfix = eType == TFACT;
std::unique_ptr<SmStructureNode> pSNode; std::unique_ptr<SmStructureNode> pSNode;
SmNode *pOper = nullptr, std::unique_ptr<SmNode> xOper;
*pExtra = nullptr, std::unique_ptr<SmNode> xExtra;
*pArg; std::unique_ptr<SmNode> xArg;
switch (eType) switch (eType)
{ {
...@@ -1649,7 +1649,7 @@ SmStructureNode *SmParser::DoUnOper() ...@@ -1649,7 +1649,7 @@ SmStructureNode *SmParser::DoUnOper()
case TNROOT : case TNROOT :
NextToken(); NextToken();
pExtra = DoPower(); xExtra.reset(DoPower());
break; break;
case TUOPER : case TUOPER :
...@@ -1657,7 +1657,7 @@ SmStructureNode *SmParser::DoUnOper() ...@@ -1657,7 +1657,7 @@ SmStructureNode *SmParser::DoUnOper()
//Let the glyph know what it is... //Let the glyph know what it is...
m_aCurToken.eType = TUOPER; m_aCurToken.eType = TUOPER;
m_aCurToken.nGroup = TG::UnOper; m_aCurToken.nGroup = TG::UnOper;
pOper = DoGlyphSpecial(); xOper.reset(DoGlyphSpecial());
break; break;
case TPLUS : case TPLUS :
...@@ -1666,7 +1666,7 @@ SmStructureNode *SmParser::DoUnOper() ...@@ -1666,7 +1666,7 @@ SmStructureNode *SmParser::DoUnOper()
case TMINUSPLUS : case TMINUSPLUS :
case TNEG : case TNEG :
case TFACT : case TFACT :
pOper = DoOpSubSup(); xOper.reset(DoOpSubSup());
break; break;
default : default :
...@@ -1674,7 +1674,7 @@ SmStructureNode *SmParser::DoUnOper() ...@@ -1674,7 +1674,7 @@ SmStructureNode *SmParser::DoUnOper()
} }
// get argument // get argument
pArg = DoPower(); xArg.reset(DoPower());
if (eType == TABS) if (eType == TABS)
{ {
...@@ -1687,27 +1687,27 @@ SmStructureNode *SmParser::DoUnOper() ...@@ -1687,27 +1687,27 @@ SmStructureNode *SmParser::DoUnOper()
aNodeToken.eType = TABS; aNodeToken.eType = TABS;
aNodeToken.cMathChar = MS_VERTLINE; aNodeToken.cMathChar = MS_VERTLINE;
SmNode* pLeft = new SmMathSymbolNode(aNodeToken); std::unique_ptr<SmNode> xLeft(new SmMathSymbolNode(aNodeToken));
aNodeToken.cMathChar = MS_VERTLINE; aNodeToken.cMathChar = MS_VERTLINE;
SmNode* pRight = new SmMathSymbolNode(aNodeToken); std::unique_ptr<SmNode> xRight(new SmMathSymbolNode(aNodeToken));
pSNode->SetSubNodes(pLeft, pArg, pRight); pSNode->SetSubNodes(xLeft.release(), xArg.release(), xRight.release());
} }
else if (eType == TSQRT || eType == TNROOT) else if (eType == TSQRT || eType == TNROOT)
{ {
pSNode.reset(new SmRootNode(aNodeToken)); pSNode.reset(new SmRootNode(aNodeToken));
pOper = new SmRootSymbolNode(aNodeToken); xOper.reset(new SmRootSymbolNode(aNodeToken));
pSNode->SetSubNodes(pExtra, pOper, pArg); pSNode->SetSubNodes(xExtra.release(), xOper.release(), xArg.release());
} }
else else
{ {
pSNode.reset(new SmUnHorNode(aNodeToken)); pSNode.reset(new SmUnHorNode(aNodeToken));
if (bIsPostfix) if (bIsPostfix)
pSNode->SetSubNodes(pArg, pOper); pSNode->SetSubNodes(xArg.release(), xOper.release());
else else
// prefix operator // prefix operator
pSNode->SetSubNodes(pOper, pArg); pSNode->SetSubNodes(xOper.release(), xArg.release());
} }
return pSNode.release(); return pSNode.release();
} }
......
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