starmath/inc/parse.hxx | 4 ++-- starmath/source/parse.cxx | 18 ++++++++---------- 2 files changed, 10 insertions(+), 12 deletions(-)
New commits: commit e2342ca5155f27637770fc392916804c8ac4728f Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Tue Feb 9 09:44:31 2021 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Tue Feb 9 12:29:03 2021 +0100 ofz#30663 Direct-leak since... commit 17149f65f03a34e88bb4a10abcd20e6891f5d7ca Date: Sun Feb 7 10:41:46 2021 +0100 Let depthGuard handle everything Change-Id: Icb978724000aec75a84ca6ecfd0fe9e299291db6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110623 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/starmath/inc/parse.hxx b/starmath/inc/parse.hxx index 591db3637714..6349dc8c479f 100644 --- a/starmath/inc/parse.hxx +++ b/starmath/inc/parse.hxx @@ -148,8 +148,8 @@ class SmParser std::unique_ptr<SmNode> DoRelation(); std::unique_ptr<SmNode> DoSum(); std::unique_ptr<SmNode> DoProduct(); - std::unique_ptr<SmNode> DoSubSup(TG nActiveGroup, SmNode *pGivenNode); - std::unique_ptr<SmNode> DoSubSupEvaluate(SmNode *pGivenNode); + std::unique_ptr<SmNode> DoSubSup(TG nActiveGroup, std::unique_ptr<SmNode> xGivenNode); + std::unique_ptr<SmNode> DoSubSupEvaluate(std::unique_ptr<SmNode> xGivenNode); std::unique_ptr<SmNode> DoOpSubSup(); std::unique_ptr<SmNode> DoPower(); std::unique_ptr<SmBlankNode> DoBlank(); diff --git a/starmath/source/parse.cxx b/starmath/source/parse.cxx index b4541fea8bb7..0aa1518eb4c2 100644 --- a/starmath/source/parse.cxx +++ b/starmath/source/parse.cxx @@ -1408,10 +1408,9 @@ std::unique_ptr<SmNode> SmParser::DoProduct() return xFirst; } -std::unique_ptr<SmNode> SmParser::DoSubSup(TG nActiveGroup, SmNode *pGivenNode) +std::unique_ptr<SmNode> SmParser::DoSubSup(TG nActiveGroup, std::unique_ptr<SmNode> xGivenNode) { DepthProtect aDepthGuard(m_nParseDepth); - std::unique_ptr<SmNode> xGivenNode(pGivenNode); assert(nActiveGroup == TG::Power || nActiveGroup == TG::Limit); assert(m_aCurToken.nGroup == nActiveGroup); @@ -1482,10 +1481,9 @@ std::unique_ptr<SmNode> SmParser::DoSubSup(TG nActiveGroup, SmNode *pGivenNode) return pNode; } -std::unique_ptr<SmNode> SmParser::DoSubSupEvaluate(SmNode *pGivenNode) +std::unique_ptr<SmNode> SmParser::DoSubSupEvaluate(std::unique_ptr<SmNode> xGivenNode) { DepthProtect aDepthGuard(m_nParseDepth); - std::unique_ptr<SmNode> xGivenNode(pGivenNode); std::unique_ptr<SmSubSupNode> pNode(new SmSubSupNode(m_aCurToken)); pNode->SetUseLimits(true); @@ -1535,13 +1533,13 @@ std::unique_ptr<SmNode> SmParser::DoOpSubSup() DepthProtect aDepthGuard(m_nParseDepth); // get operator symbol - auto pNode = std::make_unique<SmMathSymbolNode>(m_aCurToken); + auto xNode = std::make_unique<SmMathSymbolNode>(m_aCurToken); // skip operator token NextToken(); // get sub- supscripts if any if (m_aCurToken.nGroup == TG::Power) - return DoSubSup(TG::Power, pNode.release()); - return pNode; + return DoSubSup(TG::Power, std::move(xNode)); + return xNode; } std::unique_ptr<SmNode> SmParser::DoPower() @@ -1552,7 +1550,7 @@ std::unique_ptr<SmNode> SmParser::DoPower() std::unique_ptr<SmNode> xNode(DoTerm(false)); if (m_aCurToken.nGroup == TG::Power) - return DoSubSup(TG::Power, xNode.release()); + return DoSubSup(TG::Power, std::move(xNode)); return xNode; } @@ -1857,7 +1855,7 @@ std::unique_ptr<SmOperNode> SmParser::DoOperator() auto xOperator = DoOper(); if (m_aCurToken.nGroup == TG::Limit || m_aCurToken.nGroup == TG::Power) - xOperator = DoSubSup(m_aCurToken.nGroup, xOperator.release()); + xOperator = DoSubSup(m_aCurToken.nGroup, std::move(xOperator)); // get argument auto xArg = DoPower(); @@ -2398,7 +2396,7 @@ std::unique_ptr<SmNode> SmParser::DoEvaluate() if ( m_aCurToken.nGroup == TG::Limit ) { std::unique_ptr<SmNode> rSNode; - rSNode = DoSubSupEvaluate(xSNode.release()); + rSNode = DoSubSupEvaluate(std::move(xSNode)); rSNode->GetToken().eType = TEVALUATE; return rSNode; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits