summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-02-22 23:48:52 +0100
committerMichael Stahl <mstahl@redhat.com>2012-02-23 00:02:47 +0100
commitd066f7e4afb3c9e395932ba7bf8715ad0770bcdd (patch)
tree29753f552484f2dd29bf6bab7bb3ae673f8a6fa7
parent617c91401651d96f4ad48b529efd8d2390ae7a4b (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.cxx2
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))