QFontEngine: Silence bogus gcc warnings
gcc warns about using uninitialized variables in QFontEngine::getTrueTypeGlyphIndex. The warning is bogus, because all variables subject to the warning are initialized by passing their pointer to qSafeFromBigEndian(). Initialize them anyway to silence the warnings. Pick-to: 6.5 Change-Id: I25e062f25e2b06701af5edca27a9e56b939daa79 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit e957ed97e0a7f6974db7d9f7ea52d94785464880) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 9e8761e8e9755eb9dd7461682d47a6c64b39d5c0)
This commit is contained in:
parent
a9d5e1efa5
commit
7e789b2998
@ -1181,7 +1181,7 @@ const uchar *QFontEngine::getCMap(const uchar *table, uint tableSize, bool *isSy
|
||||
int tableToUse = -1;
|
||||
int score = Invalid;
|
||||
for (int n = 0; n < numTables; ++n) {
|
||||
quint16 platformId;
|
||||
quint16 platformId = 0;
|
||||
if (!qSafeFromBigEndian(maps + 8 * n, endPtr, &platformId))
|
||||
return nullptr;
|
||||
|
||||
@ -1311,7 +1311,7 @@ resolveTable:
|
||||
quint32 QFontEngine::getTrueTypeGlyphIndex(const uchar *cmap, int cmapSize, uint unicode)
|
||||
{
|
||||
const uchar *end = cmap + cmapSize;
|
||||
quint16 format;
|
||||
quint16 format = 0;
|
||||
if (!qSafeFromBigEndian(cmap, end, &format))
|
||||
return 0;
|
||||
|
||||
@ -1328,7 +1328,7 @@ quint32 QFontEngine::getTrueTypeGlyphIndex(const uchar *cmap, int cmapSize, uint
|
||||
if (unicode >= 0xffff)
|
||||
return 0;
|
||||
|
||||
quint16 segCountX2;
|
||||
quint16 segCountX2 = 0;
|
||||
if (!qSafeFromBigEndian(cmap + 6, end, &segCountX2))
|
||||
return 0;
|
||||
|
||||
@ -1336,7 +1336,7 @@ quint32 QFontEngine::getTrueTypeGlyphIndex(const uchar *cmap, int cmapSize, uint
|
||||
|
||||
int i = 0;
|
||||
for (; i < segCountX2/2; ++i) {
|
||||
quint16 codePoint;
|
||||
quint16 codePoint = 0;
|
||||
if (!qSafeFromBigEndian(ends + 2 * i, end, &codePoint))
|
||||
return 0;
|
||||
if (codePoint >= unicode)
|
||||
@ -1345,7 +1345,7 @@ quint32 QFontEngine::getTrueTypeGlyphIndex(const uchar *cmap, int cmapSize, uint
|
||||
|
||||
const unsigned char *idx = ends + segCountX2 + 2 + 2*i;
|
||||
|
||||
quint16 startIndex;
|
||||
quint16 startIndex = 0;
|
||||
if (!qSafeFromBigEndian(idx, end, &startIndex))
|
||||
return 0;
|
||||
if (startIndex > unicode)
|
||||
@ -1353,20 +1353,20 @@ quint32 QFontEngine::getTrueTypeGlyphIndex(const uchar *cmap, int cmapSize, uint
|
||||
|
||||
idx += segCountX2;
|
||||
|
||||
quint16 tmp;
|
||||
quint16 tmp = 0;
|
||||
if (!qSafeFromBigEndian(idx, end, &tmp))
|
||||
return 0;
|
||||
qint16 idDelta = qint16(tmp);
|
||||
|
||||
idx += segCountX2;
|
||||
|
||||
quint16 idRangeoffset_t;
|
||||
quint16 idRangeoffset_t = 0;
|
||||
if (!qSafeFromBigEndian(idx, end, &idRangeoffset_t))
|
||||
return 0;
|
||||
|
||||
quint16 glyphIndex;
|
||||
quint16 glyphIndex = 0;
|
||||
if (idRangeoffset_t) {
|
||||
quint16 id;
|
||||
quint16 id = 0;
|
||||
if (!qSafeFromBigEndian(idRangeoffset_t + 2 * (unicode - startIndex) + idx, end, &id))
|
||||
return 0;
|
||||
|
||||
@ -1379,17 +1379,17 @@ quint32 QFontEngine::getTrueTypeGlyphIndex(const uchar *cmap, int cmapSize, uint
|
||||
}
|
||||
return glyphIndex;
|
||||
} else if (format == 6) {
|
||||
quint16 tableSize;
|
||||
quint16 tableSize = 0;
|
||||
if (!qSafeFromBigEndian(cmap + 2, end, &tableSize))
|
||||
return 0;
|
||||
|
||||
quint16 firstCode6;
|
||||
quint16 firstCode6 = 0;
|
||||
if (!qSafeFromBigEndian(cmap + 6, end, &firstCode6))
|
||||
return 0;
|
||||
if (unicode < firstCode6)
|
||||
return 0;
|
||||
|
||||
quint16 entryCount6;
|
||||
quint16 entryCount6 = 0;
|
||||
if (!qSafeFromBigEndian(cmap + 8, end, &entryCount6))
|
||||
return 0;
|
||||
if (entryCount6 * 2 + 10 > tableSize)
|
||||
@ -1405,7 +1405,7 @@ quint32 QFontEngine::getTrueTypeGlyphIndex(const uchar *cmap, int cmapSize, uint
|
||||
qSafeFromBigEndian(cmap + 10 + (entryIndex6 * 2), end, &index);
|
||||
return index;
|
||||
} else if (format == 12) {
|
||||
quint32 nGroups;
|
||||
quint32 nGroups = 0;
|
||||
if (!qSafeFromBigEndian(cmap + 12, end, &nGroups))
|
||||
return 0;
|
||||
|
||||
@ -1415,19 +1415,19 @@ quint32 QFontEngine::getTrueTypeGlyphIndex(const uchar *cmap, int cmapSize, uint
|
||||
while (left <= right) {
|
||||
int middle = left + ( ( right - left ) >> 1 );
|
||||
|
||||
quint32 startCharCode;
|
||||
quint32 startCharCode = 0;
|
||||
if (!qSafeFromBigEndian(cmap + 12 * middle, end, &startCharCode))
|
||||
return 0;
|
||||
|
||||
if (unicode < startCharCode)
|
||||
right = middle - 1;
|
||||
else {
|
||||
quint32 endCharCode;
|
||||
quint32 endCharCode = 0;
|
||||
if (!qSafeFromBigEndian(cmap + 12 * middle + 4, end, &endCharCode))
|
||||
return 0;
|
||||
|
||||
if (unicode <= endCharCode) {
|
||||
quint32 index;
|
||||
quint32 index = 0;
|
||||
if (!qSafeFromBigEndian(cmap + 12 * middle + 8, end, &index))
|
||||
return 0;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user