vcl/generic/glyphs/gcach_layout.cxx | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-)
New commits: commit 93fa8f69ea8759ec876f3683e93f47524899c00b Author: Caolán McNamara <caol...@redhat.com> Date: Fri Nov 28 15:52:06 2014 +0000 Related: deb#766788 alloc on heap instead of stack Change-Id: I0f103f535b99f185cfdd019a76709d5deaef1d13 (cherry picked from commit acdf54c4142b7a51b99eacacee470ac31d6ff0ae) 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) {
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits