[Libreoffice-commits] core.git: starmath/source
Takeshi Abe
tabe at fixedpoint.jp
Fri Oct 2 12:10:15 PDT 2015
starmath/source/parse.cxx | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
New commits:
commit 3128b9c6f6c1304b38d3ee8d04336feab2589172
Author: Takeshi Abe <tabe at fixedpoint.jp>
Date: Fri Oct 2 22:12:32 2015 +0900
starmath: it is just a stack that is needed here
Change-Id: I5b929a462f8084105ba6254e53e9d5bfa0a96c79
Reviewed-on: https://gerrit.libreoffice.org/19096
Reviewed-by: Michael Stahl <mstahl at redhat.com>
Tested-by: Michael Stahl <mstahl at redhat.com>
diff --git a/starmath/source/parse.cxx b/starmath/source/parse.cxx
index a4087e1..e3306de 100644
--- a/starmath/source/parse.cxx
+++ b/starmath/source/parse.cxx
@@ -29,6 +29,7 @@
#include "smdll.hxx"
#include "smmod.hxx"
#include "cfgitem.hxx"
+#include <stack>
using namespace ::com::sun::star;
using namespace ::com::sun::star::i18n;
@@ -1527,13 +1528,11 @@ void SmParser::DoTerm(bool bGroupNumberIdent)
else if ( TokenInGroup(TGATTRIBUT)
|| TokenInGroup(TGFONTATTR))
{
- std::vector< SmStructureNode * > aArray;
+ std::stack<SmStructureNode *> aStack;
bool bIsAttr;
- sal_uInt16 n = 0;
while ( (bIsAttr = TokenInGroup(TGATTRIBUT))
|| TokenInGroup(TGFONTATTR))
- { aArray.resize(n + 1);
-
+ {
if (bIsAttr)
DoAttribut();
else
@@ -1544,17 +1543,18 @@ void SmParser::DoTerm(bool bGroupNumberIdent)
// check if casting in following line is ok
OSL_ENSURE(pTmp && !pTmp->IsVisible(), "Sm : Ooops...");
- aArray[n] = static_cast<SmStructureNode *>(pTmp);
- n++;
+ aStack.push(static_cast<SmStructureNode *>(pTmp));
}
DoPower();
SmNode *pFirstNode = popOrZero(m_aNodeStack);
- while (n > 0)
- { aArray[n - 1]->SetSubNodes(0, pFirstNode);
- pFirstNode = aArray[n - 1];
- n--;
+ while (!aStack.empty())
+ {
+ SmStructureNode *pNode = aStack.top();
+ aStack.pop();
+ pNode->SetSubNodes(0, pFirstNode);
+ pFirstNode = pNode;
}
m_aNodeStack.push_front(pFirstNode);
}
More information about the Libreoffice-commits
mailing list