starmath/inc/parse.hxx | 2 +- starmath/source/parse.cxx | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-)
New commits: commit 657a791349f8cd5b1aa271ac7c75ce5b5b2a859f Author: Takeshi Abe <t...@fixedpoint.jp> Date: Fri Mar 10 10:37:11 2017 +0900 starmath: Return SmGlyphSpecialNode from DoGlyphSpecial() instead of pushing it to the stack. This spares some pops. Change-Id: I9fc987ebf851ff6387e347a2878ff01f482d8f7f Reviewed-on: https://gerrit.libreoffice.org/35029 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Takeshi Abe <t...@fixedpoint.jp> diff --git a/starmath/inc/parse.hxx b/starmath/inc/parse.hxx index 6804b1a..5393b3c 100644 --- a/starmath/inc/parse.hxx +++ b/starmath/inc/parse.hxx @@ -89,7 +89,7 @@ class SmParser void DoStack(); void DoMatrix(); void DoSpecial(); - void DoGlyphSpecial(); + SmGlyphSpecialNode *DoGlyphSpecial(); // end of grammar void Error(SmParseError Error); diff --git a/starmath/source/parse.cxx b/starmath/source/parse.cxx index cf1dcc8..a0f43c2 100644 --- a/starmath/source/parse.cxx +++ b/starmath/source/parse.cxx @@ -1124,9 +1124,7 @@ void SmParser::DoProduct() //Let the glyph node know it's a binary operation m_aCurToken.eType = TBOPER; m_aCurToken.nGroup = TG::Product; - - DoGlyphSpecial(); - pOper = popOrZero(m_aNodeStack); + pOper = DoGlyphSpecial(); break; case TOVERBRACE : @@ -1660,8 +1658,7 @@ void SmParser::DoUnOper() //Let the glyph know what it is... m_aCurToken.eType = TUOPER; m_aCurToken.nGroup = TG::UnOper; - DoGlyphSpecial(); - pOper = popOrZero(m_aNodeStack); + pOper = DoGlyphSpecial(); break; case TPLUS : @@ -2253,10 +2250,11 @@ void SmParser::DoSpecial() NextToken(); } -void SmParser::DoGlyphSpecial() +SmGlyphSpecialNode *SmParser::DoGlyphSpecial() { - m_aNodeStack.push_front(o3tl::make_unique<SmGlyphSpecialNode>(m_aCurToken)); + auto pNode = o3tl::make_unique<SmGlyphSpecialNode>(m_aCurToken); NextToken(); + return pNode.release(); } void SmParser::Error(SmParseError eError) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits