summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qfontsubset.cpp
diff options
context:
space:
mode:
authorKonstantin Ritt <ritt.ks@gmail.com>2014-03-05 07:02:12 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-05 13:45:44 +0100
commitf697f3ceb6751cfa04338ac8a62ad54dfadad73d (patch)
treed81a343cf4b431f78bf6d3972dd845ef76b6006c /src/gui/text/qfontsubset.cpp
parentf99fd06d7d72627dcb92f6093537d64429d0563a (diff)
Optimize glyph lookups with QFontEngine::glyphIndex(uint)
Change-Id: I56c7e727f3d9b08195f38939106620c744c6eaf0 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: BogDan Vatra <bogdan@kde.org>
Diffstat (limited to 'src/gui/text/qfontsubset.cpp')
-rw-r--r--src/gui/text/qfontsubset.cpp16
1 files changed, 1 insertions, 15 deletions
diff --git a/src/gui/text/qfontsubset.cpp b/src/gui/text/qfontsubset.cpp
index 2109b16bb5..4bb29da2af 100644
--- a/src/gui/text/qfontsubset.cpp
+++ b/src/gui/text/qfontsubset.cpp
@@ -201,22 +201,8 @@ static void checkRanges(QPdf::ByteStream &ts, QByteArray &ranges, int &nranges)
QVector<int> QFontSubset::getReverseMap() const
{
QVector<int> reverseMap(0x10000, 0);
-
- glyph_t glyph;
-
- QGlyphLayout glyphs;
- glyphs.glyphs = &glyph;
- glyphs.numGlyphs = 1;
-
for (uint uc = 0; uc < 0x10000; ++uc) {
- QChar ch(uc);
-
- int nglyphs = 1;
- if (!fontEngine->stringToCMap(&ch, 1, &glyphs, &nglyphs, QFontEngine::GlyphIndicesOnly))
- Q_UNREACHABLE();
- Q_ASSERT(nglyphs == 1);
-
- int idx = glyph_indices.indexOf(glyph);
+ int idx = glyph_indices.indexOf(fontEngine->glyphIndex(uc));
if (idx >= 0 && !reverseMap.at(idx))
reverseMap[idx] = uc;
}