summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/text/qfontengine.cpp10
-rw-r--r--src/gui/text/qfontengine_qpa.cpp5
-rw-r--r--src/gui/text/qfontengine_qpf.cpp5
3 files changed, 14 insertions, 6 deletions
diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp
index 0f7efcca15..e757102db0 100644
--- a/src/gui/text/qfontengine.cpp
+++ b/src/gui/text/qfontengine.cpp
@@ -1190,8 +1190,7 @@ bool QFontEngineBox::stringToCMap(const QChar *, int len, QGlyphLayout *glyphs,
return false;
}
- for (int i = 0; i < len; ++i)
- glyphs->glyphs[i] = 0;
+ memset(glyphs->glyphs, 0, len * sizeof(HB_Glyph));
*nglyphs = len;
glyphs->numGlyphs = len;
@@ -1385,8 +1384,10 @@ bool QFontEngineMulti::stringToCMap(const QChar *str, int len,
if (engine->type() == Box)
continue;
- glyphs->advances_x[glyph_pos] = glyphs->advances_y[glyph_pos] = 0;
- glyphs->offsets[glyph_pos] = QFixedPoint();
+ if (!(flags & GlyphIndicesOnly)) {
+ glyphs->advances_x[glyph_pos] = glyphs->advances_y[glyph_pos] = 0;
+ glyphs->offsets[glyph_pos] = QFixedPoint();
+ }
int num = 2;
QGlyphLayout offs = glyphs->mid(glyph_pos, num);
engine->stringToCMap(str + i, surrogate ? 2 : 1, &offs, &num, flags);
@@ -1411,6 +1412,7 @@ bool QFontEngineMulti::stringToCMap(const QChar *str, int len,
*nglyphs = ng;
glyphs->numGlyphs = ng;
+
return true;
}
diff --git a/src/gui/text/qfontengine_qpa.cpp b/src/gui/text/qfontengine_qpa.cpp
index af6620ecfa..e56b30ab44 100644
--- a/src/gui/text/qfontengine_qpa.cpp
+++ b/src/gui/text/qfontengine_qpa.cpp
@@ -383,7 +383,10 @@ bool QFontEngineQPA::stringToCMap(const QChar *str, int len, QGlyphLayout *glyph
*nglyphs = glyph_pos;
glyphs->numGlyphs = glyph_pos;
- recalcAdvances(glyphs, flags);
+
+ if (!(flags & GlyphIndicesOnly))
+ recalcAdvances(glyphs, flags);
+
return true;
}
diff --git a/src/gui/text/qfontengine_qpf.cpp b/src/gui/text/qfontengine_qpf.cpp
index 951be06b43..daa2c66bb4 100644
--- a/src/gui/text/qfontengine_qpf.cpp
+++ b/src/gui/text/qfontengine_qpf.cpp
@@ -592,7 +592,10 @@ bool QFontEngineQPF::stringToCMap(const QChar *str, int len, QGlyphLayout *glyph
*nglyphs = glyph_pos;
glyphs->numGlyphs = glyph_pos;
- recalcAdvances(glyphs, flags);
+
+ if (!(flags & GlyphIndicesOnly))
+ recalcAdvances(glyphs, flags);
+
return true;
}