Avoid crash when getting bearings from fallback font engine
authorEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
Fri, 13 Jul 2012 12:17:26 +0000 (14:17 +0200)
committerQt by Nokia <qt-info@nokia.com>
Sat, 14 Jul 2012 00:41:05 +0000 (02:41 +0200)
When accessing a fallback engine, we always need to call
ensureEngineAt() to make sure it's loaded.

Change-Id: Ib27e34137cfe8a3dd2b358aef3b3296a4ca52478
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
src/gui/text/qfontengine.cpp

index e757102..1ae50c7 100644 (file)
@@ -1489,6 +1489,7 @@ glyph_metrics_t QFontEngineMulti::boundingBox(const QGlyphLayout &glyphs)
 void QFontEngineMulti::getGlyphBearings(glyph_t glyph, qreal *leftBearing, qreal *rightBearing)
 {
     int which = highByte(glyph);
+    ensureEngineAt(which);
     engine(which)->getGlyphBearings(stripped(glyph), leftBearing, rightBearing);
 }