Kaydet (Commit) 7f8167d0 authored tarafından Noel Grandin's avatar Noel Grandin

loplugin:useuniqueptr in LwpFormulaInfo

Change-Id: I73fbad626ab1d37448ea12052a2fbafab5656fc7
Reviewed-on: https://gerrit.libreoffice.org/60971
Tested-by: Jenkins
Reviewed-by: 's avatarNoel Grandin <noel.grandin@collabora.co.uk>
üst 79168349
...@@ -212,8 +212,8 @@ void LwpFormulaInfo::ReadExpression() ...@@ -212,8 +212,8 @@ void LwpFormulaInfo::ReadExpression()
if (m_aStack.size() >= 2) if (m_aStack.size() >= 2)
{//binary operator {//binary operator
LwpFormulaOp* pOp = new LwpFormulaOp(TokenType); LwpFormulaOp* pOp = new LwpFormulaOp(TokenType);
pOp->AddArg(m_aStack.back()); m_aStack.pop_back(); pOp->AddArg(std::unique_ptr<LwpFormulaArg>(m_aStack.back())); m_aStack.pop_back();
pOp->AddArg(m_aStack.back()); m_aStack.pop_back(); pOp->AddArg(std::unique_ptr<LwpFormulaArg>(m_aStack.back())); m_aStack.pop_back();
m_aStack.push_back(pOp); m_aStack.push_back(pOp);
} }
break; break;
...@@ -221,7 +221,7 @@ void LwpFormulaInfo::ReadExpression() ...@@ -221,7 +221,7 @@ void LwpFormulaInfo::ReadExpression()
if (!m_aStack.empty()) if (!m_aStack.empty())
{ {
LwpFormulaUnaryOp* pOp = new LwpFormulaUnaryOp(TokenType); LwpFormulaUnaryOp* pOp = new LwpFormulaUnaryOp(TokenType);
pOp->AddArg(m_aStack.back()); m_aStack.pop_back(); pOp->AddArg(std::unique_ptr<LwpFormulaArg>(m_aStack.back())); m_aStack.pop_back();
m_aStack.push_back(pOp); m_aStack.push_back(pOp);
} }
break; break;
...@@ -293,7 +293,7 @@ void LwpFormulaInfo::ReadArguments(LwpFormulaFunc& aFunc) ...@@ -293,7 +293,7 @@ void LwpFormulaInfo::ReadArguments(LwpFormulaFunc& aFunc)
if (bArgument && !m_aStack.empty()) if (bArgument && !m_aStack.empty())
{ {
aFunc.AddArg(m_aStack.back()); aFunc.AddArg(std::unique_ptr<LwpFormulaArg>(m_aStack.back()));
m_aStack.pop_back(); m_aStack.pop_back();
} }
} }
...@@ -415,16 +415,10 @@ LwpFormulaFunc::LwpFormulaFunc(sal_uInt16 nTokenType) ...@@ -415,16 +415,10 @@ LwpFormulaFunc::LwpFormulaFunc(sal_uInt16 nTokenType)
LwpFormulaFunc::~LwpFormulaFunc() LwpFormulaFunc::~LwpFormulaFunc()
{ {
while(m_aArgs.size()>0)
{
LwpFormulaArg* pArg = m_aArgs.back();
m_aArgs.pop_back();
delete pArg;pArg=nullptr;
}
} }
void LwpFormulaFunc::AddArg(LwpFormulaArg* pArg) void LwpFormulaFunc::AddArg(std::unique_ptr<LwpFormulaArg> pArg)
{ {
m_aArgs.push_back(pArg); m_aArgs.push_back(std::move(pArg));
} }
/** /**
* Convert the functions to a string, which is a argument of other formula * Convert the functions to a string, which is a argument of other formula
...@@ -475,16 +469,12 @@ OUString LwpFormulaOp::ToString(LwpTableLayout* pCellsMap) ...@@ -475,16 +469,12 @@ OUString LwpFormulaOp::ToString(LwpTableLayout* pCellsMap)
OUString aFormula; OUString aFormula;
if (2==m_aArgs.size()) if (2==m_aArgs.size())
{ {
std::vector<LwpFormulaArg*>::iterator aItr = m_aArgs.end(); aFormula += m_aArgs[1]->ToArgString(pCellsMap) + " ";
--aItr;
aFormula += (*aItr)->ToArgString(pCellsMap) + " ";
OUString aFuncName = LwpFormulaTools::GetName(m_nTokenType); OUString aFuncName = LwpFormulaTools::GetName(m_nTokenType);
aFormula += aFuncName + " "; aFormula += aFuncName + " ";
--aItr; aFormula += m_aArgs[0]->ToArgString(pCellsMap);
aFormula += (*aItr)->ToArgString(pCellsMap);
} }
else else
{ {
...@@ -503,9 +493,7 @@ OUString LwpFormulaUnaryOp::ToString(LwpTableLayout* pCellsMap) ...@@ -503,9 +493,7 @@ OUString LwpFormulaUnaryOp::ToString(LwpTableLayout* pCellsMap)
{ {
OUString aFuncName = LwpFormulaTools::GetName(m_nTokenType); OUString aFuncName = LwpFormulaTools::GetName(m_nTokenType);
aFormula += aFuncName; aFormula += aFuncName;
aFormula += m_aArgs[0]->ToArgString(pCellsMap);
std::vector<LwpFormulaArg*>::iterator aItr = m_aArgs.begin();
aFormula += (*aItr)->ToArgString(pCellsMap);
} }
else else
{ {
......
...@@ -167,13 +167,13 @@ public: ...@@ -167,13 +167,13 @@ public:
explicit LwpFormulaFunc(sal_uInt16 nTokenType); explicit LwpFormulaFunc(sal_uInt16 nTokenType);
virtual ~LwpFormulaFunc() override; virtual ~LwpFormulaFunc() override;
void AddArg(LwpFormulaArg* pArg); void AddArg(std::unique_ptr<LwpFormulaArg> pArg);
virtual OUString ToString(LwpTableLayout* pCellsMap) override; virtual OUString ToString(LwpTableLayout* pCellsMap) override;
OUString ToArgString(LwpTableLayout* pCellsMap) override; OUString ToArgString(LwpTableLayout* pCellsMap) override;
protected: protected:
std::vector<LwpFormulaArg*> m_aArgs; std::vector<std::unique_ptr<LwpFormulaArg>> m_aArgs;
sal_uInt16 m_nTokenType; sal_uInt16 m_nTokenType;
}; };
......
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