summaryrefslogtreecommitdiff
path: root/src/gui/text/qfontengine_s60.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/text/qfontengine_s60.cpp')
-rw-r--r--src/gui/text/qfontengine_s60.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/gui/text/qfontengine_s60.cpp b/src/gui/text/qfontengine_s60.cpp
index 1da501a92b..b2bb5610b2 100644
--- a/src/gui/text/qfontengine_s60.cpp
+++ b/src/gui/text/qfontengine_s60.cpp
@@ -77,6 +77,7 @@ QSymbianTypeFaceExtras::QSymbianTypeFaceExtras(CFont* cFont, COpenFont *openFont
: m_cFont(cFont)
, m_symbolCMap(false)
, m_openFont(openFont)
+ , m_cmapSize(0)
{
if (!symbianFontTableApiAvailable()) {
TAny *trueTypeExtension = NULL;
@@ -161,10 +162,9 @@ const uchar *QSymbianTypeFaceExtras::cmap() const
{
if (m_cmapTable.isNull()) {
const QByteArray cmapTable = getSfntTable(MAKE_TAG('c', 'm', 'a', 'p'));
- int size = 0;
const uchar *cmap = QFontEngine::getCMap(reinterpret_cast<const uchar *>
- (cmapTable.constData()), cmapTable.size(), &m_symbolCMap, &size);
- m_cmapTable = QByteArray(reinterpret_cast<const char *>(cmap), size);
+ (cmapTable.constData()), cmapTable.size(), &m_symbolCMap, &m_cmapSize);
+ m_cmapTable = QByteArray(reinterpret_cast<const char *>(cmap), m_cmapSize);
}
return reinterpret_cast<const uchar *>(m_cmapTable.constData());
}
@@ -324,6 +324,7 @@ bool QFontEngineS60::stringToCMap(const QChar *characters, int len, QGlyphLayout
for (int i = 0; i < len; ++i) {
const unsigned int uc = getChar(characters, i, len);
*g++ = QFontEngine::getTrueTypeGlyphIndex(cmap,
+ m_cmapSize,
(isRtl && !m_extras->isSymbolCMap()) ? QChar::mirroredChar(uc) : uc);
}
@@ -463,7 +464,7 @@ bool QFontEngineS60::canRender(const QChar *string, int len)
const unsigned char *cmap = m_extras->cmap();
for (int i = 0; i < len; ++i) {
const unsigned int uc = getChar(string, i, len);
- if (QFontEngine::getTrueTypeGlyphIndex(cmap, uc) == 0)
+ if (QFontEngine::getTrueTypeGlyphIndex(cmap, m_cmapSize, uc) == 0)
return false;
}
return true;