[Libreoffice-commits] core.git: vcl/generic
Caolán McNamara
caolanm at redhat.com
Fri Nov 28 07:53:04 PST 2014
vcl/generic/glyphs/gcach_layout.cxx | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
New commits:
commit acdf54c4142b7a51b99eacacee470ac31d6ff0ae
Author: Caolán McNamara <caolanm at redhat.com>
Date: Fri Nov 28 15:52:06 2014 +0000
Related: deb#766788 alloc on heap instead of stack
Change-Id: I0f103f535b99f185cfdd019a76709d5deaef1d13
diff --git a/vcl/generic/glyphs/gcach_layout.cxx b/vcl/generic/glyphs/gcach_layout.cxx
index abd04ba..0285b27 100644
--- a/vcl/generic/glyphs/gcach_layout.cxx
+++ b/vcl/generic/glyphs/gcach_layout.cxx
@@ -372,7 +372,7 @@ bool HbLayoutEngine::layout(ServerFontLayout& rLayout, ImplLayoutArgs& rArgs)
rLayout.Reserve(nGlyphCapacity);
- vcl::ScriptRun aScriptRun(reinterpret_cast<const UChar *>(rArgs.mpStr), rArgs.mnLength);
+ std::unique_ptr<vcl::ScriptRun> xScriptRun(new vcl::ScriptRun(reinterpret_cast<const UChar *>(rArgs.mpStr), rArgs.mnLength));
Point aCurrPos(0, 0);
while (true)
@@ -385,21 +385,21 @@ bool HbLayoutEngine::layout(ServerFontLayout& rLayout, ImplLayoutArgs& rArgs)
// Find script subruns.
int nCurrentPos = nBidiMinRunPos;
HbScriptRuns aScriptSubRuns;
- while (aScriptRun.next())
+ while (xScriptRun->next())
{
- if (aScriptRun.getScriptStart() <= nCurrentPos && aScriptRun.getScriptEnd() > nCurrentPos)
+ if (xScriptRun->getScriptStart() <= nCurrentPos && xScriptRun->getScriptEnd() > nCurrentPos)
break;
}
while (nCurrentPos < nBidiEndRunPos)
{
int32_t nMinRunPos = nCurrentPos;
- int32_t nEndRunPos = std::min(aScriptRun.getScriptEnd(), nBidiEndRunPos);
- HbScriptRun aRun(nMinRunPos, nEndRunPos, aScriptRun.getScriptCode());
+ int32_t nEndRunPos = std::min(xScriptRun->getScriptEnd(), nBidiEndRunPos);
+ HbScriptRun aRun(nMinRunPos, nEndRunPos, xScriptRun->getScriptCode());
aScriptSubRuns.push_back(aRun);
nCurrentPos = nEndRunPos;
- aScriptRun.next();
+ xScriptRun->next();
}
// RTL subruns should be reversed to ensure that final glyph order is
@@ -407,7 +407,8 @@ bool HbLayoutEngine::layout(ServerFontLayout& rLayout, ImplLayoutArgs& rArgs)
if (bRightToLeft)
std::reverse(aScriptSubRuns.begin(), aScriptSubRuns.end());
- aScriptRun.reset();
+ xScriptRun->reset();
+ xScriptRun.reset();
for (HbScriptRuns::iterator it = aScriptSubRuns.begin(); it != aScriptSubRuns.end(); ++it)
{
More information about the Libreoffice-commits
mailing list