summaryrefslogtreecommitdiff
path: root/starmath
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-04-28 15:45:31 +0100
committerCaolán McNamara <caolanm@redhat.com>2018-04-28 22:02:40 +0200
commit5fa446204e1e686412d84562750d9802bf1b9468 (patch)
tree45f69d6c10bd08a21fa6ded3bb59dd5a201d19fe /starmath
parentaf1c5b959462bc7dcd675c6298ca69c69f33bd52 (diff)
ofz#7861 fuzzer ooms
too many frequent tiny allocations in a short time span I believe Change-Id: Iaccae6db7d18c9cd2f909f94dbe81a7dc6458bc2 Reviewed-on: https://gerrit.libreoffice.org/53589 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'starmath')
-rw-r--r--starmath/inc/node.hxx26
-rw-r--r--starmath/source/mathmlimport.cxx6
-rw-r--r--starmath/source/node.cxx270
3 files changed, 151 insertions, 151 deletions
diff --git a/starmath/inc/node.hxx b/starmath/inc/node.hxx
index 7479e3385503..b9a11864b1a8 100644
--- a/starmath/inc/node.hxx
+++ b/starmath/inc/node.hxx
@@ -162,7 +162,7 @@ public:
void Move(const Point &rPosition);
void MoveTo(const Point &rPosition) { Move(rPosition - GetTopLeft()); }
virtual void Arrange(OutputDevice &rDev, const SmFormat &rFormat) = 0;
- virtual void CreateTextFromNode(OUString &rText);
+ virtual void CreateTextFromNode(OUStringBuffer &rText);
virtual void GetAccessibleText( OUStringBuffer &rText ) const = 0;
sal_Int32 GetAccessibleIndex() const { return mnAccIndex; }
@@ -333,7 +333,7 @@ public:
virtual void Arrange(OutputDevice &rDev, const SmFormat &rFormat) override;
- void CreateTextFromNode(OUString &rText) override;
+ void CreateTextFromNode(OUStringBuffer &rText) override;
void Accept(SmVisitor* pVisitor) override;
};
@@ -414,7 +414,7 @@ public:
virtual void Prepare(const SmFormat &rFormat, const SmDocShell &rDocShell, int nDepth) override;
virtual void Arrange(OutputDevice &rDev, const SmFormat &rFormat) override;
- virtual void CreateTextFromNode(OUString &rText) override;
+ virtual void CreateTextFromNode(OUStringBuffer &rText) override;
virtual void GetAccessibleText( OUStringBuffer &rText ) const override;
void Accept(SmVisitor* pVisitor) override;
@@ -494,7 +494,7 @@ public:
virtual void Prepare(const SmFormat &rFormat, const SmDocShell &rDocShell, int nDepth) override;
virtual void Arrange(OutputDevice &rDev, const SmFormat &rFormat) override;
- void CreateTextFromNode(OUString &rText) override;
+ void CreateTextFromNode(OUStringBuffer &rText) override;
void Accept(SmVisitor* pVisitor) override;
};
@@ -651,7 +651,7 @@ public:
{}
virtual void Arrange(OutputDevice &rDev, const SmFormat &rFormat) override;
- void CreateTextFromNode(OUString &rText) override;
+ void CreateTextFromNode(OUStringBuffer &rText) override;
void Accept(SmVisitor* pVisitor) override;
};
@@ -693,7 +693,7 @@ public:
}
virtual void Arrange(OutputDevice &rDev, const SmFormat &rFormat) override;
- void CreateTextFromNode(OUString &rText) override;
+ void CreateTextFromNode(OUStringBuffer &rText) override;
void Accept(SmVisitor* pVisitor) override;
SmNode* Argument();
@@ -759,7 +759,7 @@ public:
virtual const SmNode * GetLeftMost() const override;
virtual void Arrange(OutputDevice &rDev, const SmFormat &rFormat) override;
- void CreateTextFromNode(OUString &rText) override;
+ void CreateTextFromNode(OUStringBuffer &rText) override;
void Accept(SmVisitor* pVisitor) override;
};
@@ -869,7 +869,7 @@ public:
void SetSubSup(SmSubSup eSubSup, SmNode* pScript) { SetSubNode( 1 + eSubSup, pScript); }
virtual void Arrange(OutputDevice &rDev, const SmFormat &rFormat) override;
- void CreateTextFromNode(OUString &rText) override;
+ void CreateTextFromNode(OUStringBuffer &rText) override;
void Accept(SmVisitor* pVisitor) override;
};
@@ -904,7 +904,7 @@ public:
const SmMathSymbolNode* ClosingBrace() const;
virtual void Arrange(OutputDevice &rDev, const SmFormat &rFormat) override;
- void CreateTextFromNode(OUString &rText) override;
+ void CreateTextFromNode(OUStringBuffer &rText) override;
void Accept(SmVisitor* pVisitor) override;
};
@@ -1035,7 +1035,7 @@ public:
{}
virtual void Arrange(OutputDevice &rDev, const SmFormat &rFormat) override;
- void CreateTextFromNode(OUString &rText) override;
+ void CreateTextFromNode(OUStringBuffer &rText) override;
void Accept(SmVisitor* pVisitor) override;
SmNode* Attribute();
@@ -1068,7 +1068,7 @@ public:
virtual void Prepare(const SmFormat &rFormat, const SmDocShell &rDocShell, int nDepth) override;
virtual void Arrange(OutputDevice &rDev, const SmFormat &rFormat) override;
- void CreateTextFromNode(OUString &rText) override;
+ void CreateTextFromNode(OUStringBuffer &rText) override;
void Accept(SmVisitor* pVisitor) override;
};
@@ -1098,7 +1098,7 @@ public:
virtual const SmNode * GetLeftMost() const override;
virtual void Arrange(OutputDevice &rDev, const SmFormat &rFormat) override;
- void CreateTextFromNode(OUString &rText) override;
+ void CreateTextFromNode(OUStringBuffer &rText) override;
void Accept(SmVisitor* pVisitor) override;
};
@@ -1126,7 +1126,7 @@ public:
virtual void Prepare(const SmFormat &rFormat, const SmDocShell &rDocShell, int nDepth) override;
virtual void Arrange(OutputDevice &rDev, const SmFormat &rFormat) override;
void Accept(SmVisitor* pVisitor) override;
- virtual void CreateTextFromNode(OUString &rText) override;
+ virtual void CreateTextFromNode(OUStringBuffer &rText) override;
};
diff --git a/starmath/source/mathmlimport.cxx b/starmath/source/mathmlimport.cxx
index 6142db4a3ec4..8c0fc3f3d97c 100644
--- a/starmath/source/mathmlimport.cxx
+++ b/starmath/source/mathmlimport.cxx
@@ -515,9 +515,11 @@ void SmXMLImport::endDocument()
pDocShell->SetFormulaTree(static_cast<SmTableNode *>(pTree));
if (aText.isEmpty()) //If we picked up no annotation text
{
+ OUStringBuffer aStrBuf;
// Get text from imported formula
- pTree->CreateTextFromNode(aText);
- aText = comphelper::string::stripEnd(aText, ' ');
+ pTree->CreateTextFromNode(aStrBuf);
+ aStrBuf.stripEnd(' ');
+ aText = aStrBuf.makeStringAndClear();
}
// Convert symbol names
diff --git a/starmath/source/node.cxx b/starmath/source/node.cxx
index 3d1190594002..55466245527d 100644
--- a/starmath/source/node.cxx
+++ b/starmath/source/node.cxx
@@ -251,16 +251,16 @@ void SmNode::Move(const Point& rPosition)
ForEachNonNull(this, [&rPosition](SmNode *pNode){pNode->Move(rPosition);});
}
-void SmNode::CreateTextFromNode(OUString &rText)
+void SmNode::CreateTextFromNode(OUStringBuffer &rText)
{
auto nSize = GetNumSubNodes();
if (nSize > 1)
- rText += "{";
+ rText.append("{");
ForEachNonNull(this, [&rText](SmNode *pNode){pNode->CreateTextFromNode(rText);});
if (nSize > 1)
{
- rText = comphelper::string::stripEnd(rText, ' ');
- rText += "} ";
+ rText.stripEnd(' ');
+ rText.append("} ");
}
}
@@ -454,11 +454,11 @@ void SmGraphicNode::GetAccessibleText( OUStringBuffer &rText ) const
rText.append(GetToken().aText);
}
-void SmExpressionNode::CreateTextFromNode(OUString &rText)
+void SmExpressionNode::CreateTextFromNode(OUStringBuffer &rText)
{
size_t nSize = GetNumSubNodes();
if (nSize > 1)
- rText += "{";
+ rText.append("{");
for (size_t i = 0; i < nSize; ++i)
{
SmNode *pNode = GetSubNode(i);
@@ -467,16 +467,16 @@ void SmExpressionNode::CreateTextFromNode(OUString &rText)
pNode->CreateTextFromNode(rText);
//Just a bit of foo to make unary +asd -asd +-asd -+asd look nice
if (pNode->GetType() == SmNodeType::Math)
- if ((nSize != 2) ||
- ( !rText.endsWith("+") && !rText.endsWith("-") ))
- rText += " ";
+ if ((nSize != 2) || rText.isEmpty() ||
+ (rText[rText.getLength() - 1] != '+' && rText[rText.getLength() - 1] != '-') )
+ rText.append(" ");
}
}
if (nSize > 1)
{
- rText = comphelper::string::stripEnd(rText, ' ');
- rText += "} ";
+ rText.stripEnd(' ');
+ rText.append("} ");
}
}
@@ -754,24 +754,24 @@ void SmRootNode::Arrange(OutputDevice &rDev, const SmFormat &rFormat)
}
-void SmRootNode::CreateTextFromNode(OUString &rText)
+void SmRootNode::CreateTextFromNode(OUStringBuffer &rText)
{
SmNode *pExtra = GetSubNode(0);
if (pExtra)
{
- rText += "nroot ";
+ rText.append("nroot ");
pExtra->CreateTextFromNode(rText);
}
else
- rText += "sqrt ";
+ rText.append("sqrt ");
if (!pExtra && GetSubNode(2)->GetNumSubNodes() > 1)
- rText += "{ ";
+ rText.append("{ ");
GetSubNode(2)->CreateTextFromNode(rText);
if (!pExtra && GetSubNode(2)->GetNumSubNodes() > 1)
- rText += "} ";
+ rText.append("} ");
}
/**************************************************************************/
@@ -873,16 +873,15 @@ void SmBinVerNode::Arrange(OutputDevice &rDev, const SmFormat &rFormat)
ExtendBy(*pDenom, RectCopyMBL::None).ExtendBy(*pLine, RectCopyMBL::None, pLine->GetCenterY());
}
-void SmBinVerNode::CreateTextFromNode(OUString &rText)
+void SmBinVerNode::CreateTextFromNode(OUStringBuffer &rText)
{
SmNode *pNum = GetSubNode(0),
*pDenom = GetSubNode(2);
pNum->CreateTextFromNode(rText);
- rText += "over ";
+ rText.append("over ");
pDenom->CreateTextFromNode(rText);
}
-
const SmNode * SmBinVerNode::GetLeftMost() const
{
return this;
@@ -1250,41 +1249,41 @@ void SmSubSupNode::Arrange(OutputDevice &rDev, const SmFormat &rFormat)
}
}
-void SmSubSupNode::CreateTextFromNode(OUString &rText)
+void SmSubSupNode::CreateTextFromNode(OUStringBuffer &rText)
{
SmNode *pNode;
GetSubNode(0)->CreateTextFromNode(rText);
if (nullptr != (pNode = GetSubNode(LSUB+1)))
{
- rText += "lsub ";
+ rText.append("lsub ");
pNode->CreateTextFromNode(rText);
}
if (nullptr != (pNode = GetSubNode(LSUP+1)))
{
- rText += "lsup ";
+ rText.append("lsup ");
pNode->CreateTextFromNode(rText);
}
if (nullptr != (pNode = GetSubNode(CSUB+1)))
{
- rText += "csub ";
+ rText.append("csub ");
pNode->CreateTextFromNode(rText);
}
if (nullptr != (pNode = GetSubNode(CSUP+1)))
{
- rText += "csup ";
+ rText.append("csup ");
pNode->CreateTextFromNode(rText);
}
if (nullptr != (pNode = GetSubNode(RSUB+1)))
{
- rText = comphelper::string::stripEnd(rText, ' ');
- rText += "_";
+ rText.stripEnd(' ');
+ rText.append("_");
pNode->CreateTextFromNode(rText);
}
if (nullptr != (pNode = GetSubNode(RSUP+1)))
{
- rText = comphelper::string::stripEnd(rText, ' ');
- rText += "^";
+ rText.stripEnd(' ');
+ rText.append("^");
pNode->CreateTextFromNode(rText);
}
}
@@ -1292,55 +1291,56 @@ void SmSubSupNode::CreateTextFromNode(OUString &rText)
/**************************************************************************/
-void SmBraceNode::CreateTextFromNode(OUString &rText)
+void SmBraceNode::CreateTextFromNode(OUStringBuffer &rText)
{
if (GetScaleMode() == SmScaleMode::Height)
- rText += "left ";
+ rText.append("left ");
{
- OUString aStr;
- OpeningBrace()->CreateTextFromNode(aStr);
+ OUStringBuffer aStrBuf;
+ OpeningBrace()->CreateTextFromNode(aStrBuf);
+ OUString aStr = aStrBuf.makeStringAndClear();
aStr = comphelper::string::strip(aStr, ' ');
aStr = comphelper::string::stripStart(aStr, '\\');
if (!aStr.isEmpty())
{
if (aStr == "divides")
- rText += "lline";
+ rText.append("lline");
else if (aStr == "parallel")
- rText += "ldline";
+ rText.append("ldline");
else if (aStr == "<")
- rText += "langle";
+ rText.append("langle");
else
- rText += aStr;
- rText += " ";
+ rText.append(aStr);
+ rText.append(" ");
}
else
- rText += "none ";
+ rText.append("none ");
}
Body()->CreateTextFromNode(rText);
if (GetScaleMode() == SmScaleMode::Height)
- rText += "right ";
+ rText.append("right ");
{
- OUString aStr;
- ClosingBrace()->CreateTextFromNode(aStr);
+ OUStringBuffer aStrBuf;
+ ClosingBrace()->CreateTextFromNode(aStrBuf);
+ OUString aStr = aStrBuf.makeStringAndClear();
aStr = comphelper::string::strip(aStr, ' ');
aStr = comphelper::string::stripStart(aStr, '\\');
if (!aStr.isEmpty())
{
if (aStr == "divides")
- rText += "rline";
+ rText.append("rline");
else if (aStr == "parallel")
- rText += "rdline";
+ rText.append("rdline");
else if (aStr == ">")
- rText += "rangle";
+ rText.append("rangle");
else
- rText += aStr;
- rText += " ";
+ rText.append(aStr);
+ rText.append(" ");
}
else
- rText += "none ";
+ rText.append("none ");
}
- rText += " ";
-
+ rText.append(" ");
}
void SmBraceNode::Arrange(OutputDevice &rDev, const SmFormat &rFormat)
@@ -1709,126 +1709,126 @@ void SmAttributNode::Arrange(OutputDevice &rDev, const SmFormat &rFormat)
ExtendBy(*pAttr, RectCopyMBL::This, true);
}
-void SmFontNode::CreateTextFromNode(OUString &rText)
+void SmFontNode::CreateTextFromNode(OUStringBuffer &rText)
{
- rText += "{";
+ rText.append("{");
switch (GetToken().eType)
{
case TBOLD:
- rText += "bold ";
+ rText.append("bold ");
break;
case TNBOLD:
- rText += "nbold ";
+ rText.append("nbold ");
break;
case TITALIC:
- rText += "italic ";
+ rText.append("italic ");
break;
case TNITALIC:
- rText += "nitalic ";
+ rText.append("nitalic ");
break;
case TPHANTOM:
- rText += "phantom ";
+ rText.append("phantom ");
break;
case TSIZE:
{
- rText += "size ";
+ rText.append("size ");
switch (meSizeType)
{
case FontSizeType::PLUS:
- rText += "+";
+ rText.append("+");
break;
case FontSizeType::MINUS:
- rText += "-";
+ rText.append("-");
break;
case FontSizeType::MULTIPLY:
- rText += "*";
+ rText.append("*");
break;
case FontSizeType::DIVIDE:
- rText += "/";
+ rText.append("/");
break;
case FontSizeType::ABSOLUT:
default:
break;
}
- rText += ::rtl::math::doubleToUString(
+ rText.append(::rtl::math::doubleToUString(
static_cast<double>(maFontSize),
rtl_math_StringFormat_Automatic,
- rtl_math_DecimalPlaces_Max, '.', true);
- rText += " ";
+ rtl_math_DecimalPlaces_Max, '.', true));
+ rText.append(" ");
}
break;
case TBLACK:
- rText += "color black ";
+ rText.append("color black ");
break;
case TWHITE:
- rText += "color white ";
+ rText.append("color white ");
break;
case TRED:
- rText += "color red ";
+ rText.append("color red ");
break;
case TGREEN:
- rText += "color green ";
+ rText.append("color green ");
break;
case TBLUE:
- rText += "color blue ";
+ rText.append("color blue ");
break;
case TCYAN:
- rText += "color cyan ";
+ rText.append("color cyan ");
break;
case TMAGENTA:
- rText += "color magenta ";
+ rText.append("color magenta ");
break;
case TYELLOW:
- rText += "color yellow ";
+ rText.append("color yellow ");
break;
case TTEAL:
- rText += "color teal ";
+ rText.append("color teal ");
break;
case TSILVER:
- rText += "color silver ";
+ rText.append("color silver ");
break;
case TGRAY:
- rText += "color gray ";
+ rText.append("color gray ");
break;
case TMAROON:
- rText += "color maroon ";
+ rText.append("color maroon ");
break;
case TPURPLE:
- rText += "color purple ";
+ rText.append("color purple ");
break;
case TLIME:
- rText += "color lime ";
+ rText.append("color lime ");
break;
case TOLIVE:
- rText += "color olive ";
+ rText.append("color olive ");
break;
case TNAVY:
- rText += "color navy ";
+ rText.append("color navy ");
break;
case TAQUA:
- rText += "color aqua ";
+ rText.append("color aqua ");
break;
case TFUCHSIA:
- rText += "color fuchsia ";
+ rText.append("color fuchsia ");
break;
case TSANS:
- rText += "font sans ";
+ rText.append("font sans ");
break;
case TSERIF:
- rText += "font serif ";
+ rText.append("font serif ");
break;
case TFIXED:
- rText += "font fixed ";
+ rText.append("font fixed ");
break;
default:
break;
}
- if(GetNumSubNodes() > 1)
+ if (GetNumSubNodes() > 1)
GetSubNode(1)->CreateTextFromNode(rText);
- rText = comphelper::string::stripEnd(rText, ' ');
- rText += "} ";
+ rText.stripEnd(' ');
+ rText.append("} ");
}
void SmFontNode::Prepare(const SmFormat &rFormat, const SmDocShell &rDocShell, int nDepth)
@@ -2091,12 +2091,12 @@ void SmTextNode::Arrange(OutputDevice &rDev, const SmFormat &rFormat)
SmRect::operator = (SmRect(aTmpDev, &rFormat, maText, GetFont().GetBorderWidth()));
}
-void SmTextNode::CreateTextFromNode(OUString &rText)
+void SmTextNode::CreateTextFromNode(OUStringBuffer &rText)
{
bool bQuoted=false;
if (GetToken().eType == TTEXT)
{
- rText += "\"";
+ rText.append("\"");
bQuoted=true;
}
else
@@ -2120,24 +2120,23 @@ void SmTextNode::CreateTextFromNode(OUString &rText)
if ((GetToken().eType == TIDENT) && (GetFontDesc() == FNT_FUNCTION))
{
//Search for existing functions and remove extraneous keyword
- rText += "func ";
+ rText.append("func ");
}
else if (bQuoted)
- rText += "italic ";
+ rText.append("italic ");
if (bQuoted)
- rText += "\"";
+ rText.append("\"");
}
- rText += GetToken().aText;
+ rText.append(GetToken().aText);
if (bQuoted)
- rText += "\"";
- rText += " ";
+ rText.append("\"");
+ rText.append(" ");
}
-
void SmTextNode::GetAccessibleText( OUStringBuffer &rText ) const
{
rText.append(maText);
@@ -2209,9 +2208,9 @@ sal_Unicode SmTextNode::ConvertSymbolToUnicode(sal_Unicode nIn)
/**************************************************************************/
-void SmMatrixNode::CreateTextFromNode(OUString &rText)
+void SmMatrixNode::CreateTextFromNode(OUStringBuffer &rText)
{
- rText += "matrix {";
+ rText.append("matrix {");
for (size_t i = 0; i < mnNumRows; ++i)
{
for (size_t j = 0; j < mnNumCols; ++j)
@@ -2220,16 +2219,15 @@ void SmMatrixNode::CreateTextFromNode(OUString &rText)
if (pNode)
pNode->CreateTextFromNode(rText);
if (j != mnNumCols - 1U)
- rText += "# ";
+ rText.append("# ");
}
if (i != mnNumRows - 1U)
- rText += "## ";
+ rText.append("## ");
}
- rText = comphelper::string::stripEnd(rText, ' ');
- rText += "} ";
+ rText.stripEnd(' ');
+ rText.append("} ");
}
-
void SmMatrixNode::Arrange(OutputDevice &rDev, const SmFormat &rFormat)
{
SmNode *pNode;
@@ -2447,7 +2445,7 @@ void SmMathSymbolNode::Arrange(OutputDevice &rDev, const SmFormat &rFormat)
SmRect::operator = (SmRect(aTmpDev, &rFormat, rText, GetFont().GetBorderWidth()));
}
-void SmMathSymbolNode::CreateTextFromNode(OUString &rText)
+void SmMathSymbolNode::CreateTextFromNode(OUStringBuffer &rText)
{
OUString sStr;
sal_Unicode cChar = GetToken().cMathChar;
@@ -2455,99 +2453,99 @@ void SmMathSymbolNode::CreateTextFromNode(OUString &rText)
sStr = "intd ";
else
MathType::LookupChar(cChar, sStr, 3);
- rText += sStr;
+ rText.append(sStr);
}
-void SmRectangleNode::CreateTextFromNode(OUString &rText)
+void SmRectangleNode::CreateTextFromNode(OUStringBuffer &rText)
{
switch (GetToken().eType)
{
case TUNDERLINE:
- rText += "underline ";
+ rText.append("underline ");
break;
case TOVERLINE:
- rText += "overline ";
+ rText.append("overline ");
break;
case TOVERSTRIKE:
- rText += "overstrike ";
+ rText.append("overstrike ");
break;
default:
break;
}
}
-void SmAttributNode::CreateTextFromNode(OUString &rText)
+void SmAttributNode::CreateTextFromNode(OUStringBuffer &rText)
{
SmNode *pNode;
assert(GetNumSubNodes() == 2);
- rText += "{";
+ rText.append("{");
sal_Unicode nLast=0;
if (nullptr != (pNode = Attribute()))
{
- OUString aStr;
+ OUStringBuffer aStr;
pNode->CreateTextFromNode(aStr);
if (aStr.getLength() > 1)
- rText += aStr;
+ rText.append(aStr);
else
{
nLast = aStr[0];
switch (nLast)
{
case MS_BAR: // MACRON
- rText += "overline ";
+ rText.append("overline ");
break;
case MS_DOT: // DOT ABOVE
- rText += "dot ";
+ rText.append("dot ");
break;
case 0x2dc: // SMALL TILDE
- rText += "widetilde ";
+ rText.append("widetilde ");
break;
case MS_DDOT: // DIAERESIS
- rText += "ddot ";
+ rText.append("ddot ");
break;
case 0xE082:
break;
case 0xE09B:
case MS_DDDOT: // COMBINING THREE DOTS ABOVE
- rText += "dddot ";
+ rText.append("dddot ");
break;
case MS_ACUTE: // ACUTE ACCENT
case MS_COMBACUTE: // COMBINING ACUTE ACCENT
- rText += "acute ";
+ rText.append("acute ");
break;
case MS_GRAVE: // GRAVE ACCENT
case MS_COMBGRAVE: // COMBINING GRAVE ACCENT
- rText += "grave ";
+ rText.append("grave ");
break;
case MS_CHECK: // CARON
case MS_COMBCHECK: // COMBINING CARON
- rText += "check ";
+ rText.append("check ");
break;
case MS_BREVE: // BREVE
case MS_COMBBREVE: // COMBINING BREVE
- rText += "breve ";
+ rText.append("breve ");
break;
case MS_CIRCLE: // RING ABOVE
case MS_COMBCIRCLE: // COMBINING RING ABOVE
- rText += "circle ";
+ rText.append("circle ");
break;
case MS_RIGHTARROW: // RIGHTWARDS ARROW
case MS_VEC: // COMBINING RIGHT ARROW ABOVE
- rText += "vec ";
+ rText.append("vec ");
break;
case MS_TILDE: // TILDE
case MS_COMBTILDE: // COMBINING TILDE
- rText += "tilde ";
+ rText.append("tilde ");
break;
case MS_HAT: // CIRCUMFLEX ACCENT
case MS_COMBHAT: // COMBINING CIRCUMFLEX ACCENT
- rText += "hat ";
+ rText.append("hat ");
break;
case MS_COMBBAR: // COMBINING MACRON
- rText += "bar ";
+ rText.append("bar ");
break;
default:
- rText += OUStringLiteral1( nLast );
+ rText.append(OUStringLiteral1(nLast));
break;
}
}
@@ -2556,12 +2554,12 @@ void SmAttributNode::CreateTextFromNode(OUString &rText)
if (nullptr != (pNode = Body()))
pNode->CreateTextFromNode(rText);
- rText = comphelper::string::stripEnd(rText, ' ');
+ rText.stripEnd(' ');
if (nLast == 0xE082)
- rText += " overbrace {}";
+ rText.append(" overbrace {}");
- rText += "} ";
+ rText.append("} ");
}
/**************************************************************************/
@@ -2777,17 +2775,17 @@ void SmBlankNode::Arrange(OutputDevice &rDev, const SmFormat &rFormat)
SetWidth(nSpace);
}
-void SmBlankNode::CreateTextFromNode(OUString &rText)
+void SmBlankNode::CreateTextFromNode(OUStringBuffer &rText)
{
if (mnNum <= 0)
return;
sal_uInt16 nWide = mnNum / 4;
sal_uInt16 nNarrow = mnNum % 4;
for (sal_uInt16 i = 0; i < nWide; i++)
- rText += "~";
+ rText.append("~");
for (sal_uInt16 i = 0; i < nNarrow; i++)
- rText += "`";
- rText += " ";
+ rText.append("`");
+ rText.append(" ");
}