diff options
author | Takeshi Abe <tabe@fixedpoint.jp> | 2015-06-19 09:43:03 +0900 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2015-06-22 11:24:13 +0000 |
commit | 1470e064eec546ab8d73ab537b773279ce85011c (patch) | |
tree | 16b2ff71285f98dc7d1e7e9d5c3140aa62180d22 /starmath | |
parent | 9d9fbbdc1ec57715305563817ce0a7a638da7bda (diff) |
cppcheck: variableScope
This reduces pNode's scope by introducing ForEachNonNull().
Change-Id: I2c82401da8d7d0919fdd0a0be9b2d82a70b2a7c6
Reviewed-on: https://gerrit.libreoffice.org/16208
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: David Tardon <dtardon@redhat.com>
Diffstat (limited to 'starmath')
-rw-r--r-- | starmath/source/node.cxx | 96 |
1 files changed, 30 insertions, 66 deletions
diff --git a/starmath/source/node.cxx b/starmath/source/node.cxx index 132c079adcbb..9e6681010e51 100644 --- a/starmath/source/node.cxx +++ b/starmath/source/node.cxx @@ -37,6 +37,22 @@ #include <math.h> #include <float.h> #include <vector> +#include <boost/checked_delete.hpp> + +namespace { + +template<typename F> +void ForEachNonNull(SmNode *pNode, F && f) +{ + sal_uInt16 nSize = pNode->GetNumSubNodes(); + for (sal_uInt16 i = 0; i < nSize; i++) { + SmNode *pSubNode = pNode->GetSubNode(i); + if (pSubNode != nullptr) + f(pSubNode); + } +} + +} SmNode::SmNode(SmNodeType eNodeType, const SmToken &rNodeToken) : aNodeToken( rNodeToken ) @@ -93,11 +109,8 @@ void SmNode::SetPhantom(bool bIsPhantomP) if (! (Flags() & FLG_VISIBLE)) bIsPhantom = bIsPhantomP; - SmNode *pNode; - sal_uInt16 nSize = GetNumSubNodes(); - for (sal_uInt16 i = 0; i < nSize; i++) - if (NULL != (pNode = GetSubNode(i))) - pNode->SetPhantom(bIsPhantom); + bool b = bIsPhantom; + ForEachNonNull(this, [b](SmNode *pNode){pNode->SetPhantom(b);}); } @@ -106,11 +119,7 @@ void SmNode::SetColor(const Color& rColor) if (! (Flags() & FLG_COLOR)) GetFont().SetColor(rColor); - SmNode *pNode; - sal_uInt16 nSize = GetNumSubNodes(); - for (sal_uInt16 i = 0; i < nSize; i++) - if (NULL != (pNode = GetSubNode(i))) - pNode->SetColor(rColor); + ForEachNonNull(this, [&rColor](SmNode *pNode){pNode->SetColor(rColor);}); } @@ -124,11 +133,7 @@ void SmNode::SetAttribut(sal_uInt16 nAttrib) nAttributes |= nAttrib; } - SmNode *pNode; - sal_uInt16 nSize = GetNumSubNodes(); - for (sal_uInt16 i = 0; i < nSize; i++) - if (NULL != (pNode = GetSubNode(i))) - pNode->SetAttribut(nAttrib); + ForEachNonNull(this, [nAttrib](SmNode *pNode){pNode->SetAttribut(nAttrib);}); } @@ -142,11 +147,7 @@ void SmNode::ClearAttribut(sal_uInt16 nAttrib) nAttributes &= ~nAttrib; } - SmNode *pNode; - sal_uInt16 nSize = GetNumSubNodes(); - for (sal_uInt16 i = 0; i < nSize; i++) - if (NULL != (pNode = GetSubNode(i))) - pNode->ClearAttribut(nAttrib); + ForEachNonNull(this, [nAttrib](SmNode *pNode){pNode->ClearAttribut(nAttrib);}); } @@ -155,11 +156,7 @@ void SmNode::SetFont(const SmFace &rFace) if (!(Flags() & FLG_FONT)) GetFont() = rFace; - SmNode *pNode; - sal_uInt16 nSize = GetNumSubNodes(); - for (sal_uInt16 i = 0; i < nSize; i++) - if (NULL != (pNode = GetSubNode(i))) - pNode->SetFont(rFace); + ForEachNonNull(this, [&rFace](SmNode *pNode){pNode->SetFont(rFace);}); } @@ -210,11 +207,7 @@ void SmNode::SetFontSize(const Fraction &rSize, FontSizeType nType) GetFont().SetSize(aFntSize); } - SmNode *pNode; - sal_uInt16 nSize = GetNumSubNodes(); - for (sal_uInt16 i = 0; i < nSize; i++) - if (NULL != (pNode = GetSubNode(i))) - pNode->SetFontSize(rSize, nType); + ForEachNonNull(this, [&rSize, &nType](SmNode *pNode){pNode->SetFontSize(rSize, nType);}); } @@ -222,11 +215,7 @@ void SmNode::SetSize(const Fraction &rSize) { GetFont() *= rSize; - SmNode *pNode; - sal_uInt16 nSize = GetNumSubNodes(); - for (sal_uInt16 i = 0; i < nSize; i++) - if (NULL != (pNode = GetSubNode(i))) - pNode->SetSize(rSize); + ForEachNonNull(this, [&rSize](SmNode *pNode){pNode->SetSize(rSize);}); } @@ -236,13 +225,7 @@ void SmNode::SetRectHorAlign(RectHorAlign eHorAlign, bool bApplyToSubTree ) eRectHorAlign = eHorAlign; if (bApplyToSubTree) - { - SmNode *pNode; - sal_uInt16 nSize = GetNumSubNodes(); - for (sal_uInt16 i = 0; i < nSize; i++) - if (NULL != (pNode = GetSubNode(i))) - pNode->SetRectHorAlign(eHorAlign); - } + ForEachNonNull(this, [eHorAlign](SmNode *pNode){pNode->SetRectHorAlign(eHorAlign);}); } @@ -271,11 +254,7 @@ void SmNode::Prepare(const SmFormat &rFormat, const SmDocShell &rDocShell) GetFont().SetWeight(WEIGHT_NORMAL); GetFont().SetItalic(ITALIC_NONE); - SmNode *pNode; - sal_uInt16 nSize = GetNumSubNodes(); - for (sal_uInt16 i = 0; i < nSize; i++) - if (NULL != (pNode = GetSubNode(i))) - pNode->Prepare(rFormat, rDocShell); + ForEachNonNull(this, [&rFormat, &rDocShell](SmNode *pNode){pNode->Prepare(rFormat, rDocShell);}); } sal_uInt16 SmNode::FindIndex() const @@ -301,32 +280,21 @@ void SmNode::Move(const Point& rPosition) SmRect::Move(rPosition); - SmNode *pNode; - sal_uInt16 nSize = GetNumSubNodes(); - for (sal_uInt16 i = 0; i < nSize; i++) - if (NULL != (pNode = GetSubNode(i))) - pNode->Move(rPosition); + ForEachNonNull(this, [&rPosition](SmNode *pNode){pNode->Move(rPosition);}); } void SmNode::Arrange(const OutputDevice &rDev, const SmFormat &rFormat) { - SmNode *pNode; - sal_uInt16 nSize = GetNumSubNodes(); - for (sal_uInt16 i = 0; i < nSize; i++) - if (NULL != (pNode = GetSubNode(i))) - pNode->Arrange(rDev, rFormat); + ForEachNonNull(this, [&rDev, &rFormat](SmNode *pNode){pNode->Arrange(rDev, rFormat);}); } void SmNode::CreateTextFromNode(OUString &rText) { - SmNode *pNode; sal_uInt16 nSize = GetNumSubNodes(); if (nSize > 1) rText += "{"; - for (sal_uInt16 i = 0; i < nSize; i++) - if (NULL != (pNode = GetSubNode(i))) - pNode->CreateTextFromNode(rText); + ForEachNonNull(this, [&rText](SmNode *pNode){pNode->CreateTextFromNode(rText);}); if (nSize > 1) { rText = comphelper::string::stripEnd(rText, ' '); @@ -571,11 +539,7 @@ SmStructureNode::SmStructureNode( const SmStructureNode &rNode ) : SmStructureNode::~SmStructureNode() { - SmNode *pNode; - - for (sal_uInt16 i = 0; i < GetNumSubNodes(); i++) - if (NULL != (pNode = GetSubNode(i))) - delete pNode; + ForEachNonNull(this, boost::checked_deleter<SmNode>()); } |