diff options
author | Michael Stahl <mstahl@redhat.com> | 2012-02-22 23:48:52 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2012-02-23 00:02:47 +0100 |
commit | d066f7e4afb3c9e395932ba7bf8715ad0770bcdd (patch) | |
tree | 29753f552484f2dd29bf6bab7bb3ae673f8a6fa7 | |
parent | 617c91401651d96f4ad48b529efd8d2390ae7a4b (diff) |
vcl: crash in GraphiteLayout::expandOrCondense:
When printing the bugdoc from i#103958:
error: attempt to subscript container with out-of-bounds index 5, but
container only holds 5 elements.
#4 0x00007fd37902be5e in GraphiteLayout::expandOrCondense (this=0x35296a8, rArgs=...) at vcl/source/glyphs/graphite_layout.cxx:848
#5 0x00007fd37902bc54 in GraphiteLayout::AdjustLayout (this=0x35296a8, rArgs=...) at vcl/source/glyphs/graphite_layout.cxx:812
#6 0x00007fd3790345c8 in GraphiteServerFontLayout::AdjustLayout (this=0x3529640, rArgs=...) at vcl/inc/graphite_serverfont.hxx:76
#7 0x00007fd378d5c91d in OutputDevice::forceFallbackFontToFit (this=0x35022c0, rFallback=..., rFallbackFont=..., rFontSelData=..., nFallbackLevel=1, rLayoutArgs=..., rOrigMetric=...) at vcl/source/gdi/outdev3.cxx:6094
#8 0x00007fd378d5cece in OutputDevice::ImplGlyphFallbackLayout (this=0x35022c0, pSalLayout=0x36136c0, rLayoutArgs=...) at vcl/source/gdi/outdev3.cxx:6206
#9 0x00007fd378d5c6fe in OutputDevice::ImplLayout (this=0x35022c0, rOrigStr="\327\252\327\220\327\250\327\231\327\232:__________", nMinIndex=0, nLen=5, rLogicalPos=..., nLogicalWidth=570, pDXArray=0x0, bFilter=true) at vcl/source/gdi/outdev3.cxx:6065
#10 0x00007fd378d5b9da in OutputDevice::DrawStretchText (this=0x35022c0, rStartPt=..., nWidth=570, rStr="\327\252\327\220\327\250\327\231\327\232:__________", nIndex=0, nLen=5) at vcl/source/gdi/outdev3.cxx:5840
#11 0x00007fd378d27f1e in MetaStretchTextAction::Execute (this=0x3588880, pOut=0x35022c0) at vcl/source/gdi/metaact.cxx:1482
#12 0x00007fd378cdbea5 in GDIMetaFile::Play (this=0x7ffff63e7da0, pOut=0x35022c0, nPos=1283) at vcl/source/gdi/gdimtf.cxx:424
#13 0x00007fd378ea1c6f in vcl::PrinterController::printFilteredPage (this=0x34ff550, i_nPage=10) at vcl/source/gdi/print3.cxx:1207
-rw-r--r-- | vcl/source/glyphs/graphite_layout.cxx | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/vcl/source/glyphs/graphite_layout.cxx b/vcl/source/glyphs/graphite_layout.cxx index ce6c0514c492..a75574983742 100644 --- a/vcl/source/glyphs/graphite_layout.cxx +++ b/vcl/source/glyphs/graphite_layout.cxx @@ -843,7 +843,7 @@ void GraphiteLayout::expandOrCondense(ImplLayoutArgs &rArgs) assert(nCharIndex > -1); mvCharDxs[nCharIndex-mnMinCharPos] += nOffset; // adjust char dxs for rest of characters in cluster - while (++nCharIndex < static_cast<int>(mvGlyph2Char.size())) + while (++nCharIndex < static_cast<int>(mvChar2BaseGlyph.size())) { int nChar2Base = mvChar2BaseGlyph[nCharIndex-mnMinCharPos]; if (nChar2Base == -1 || nChar2Base == static_cast<int>(i)) |