提交 e5813743 编写于 作者: P prr

8067050: Better font consistency checking

Reviewed-by: bae, srl, mschoene
上级 a9b426bf
...@@ -150,8 +150,8 @@ public: ...@@ -150,8 +150,8 @@ public:
if(isEmpty()) { if(isEmpty()) {
//err = LE_MISSING_FONT_TABLE_ERROR; //err = LE_MISSING_FONT_TABLE_ERROR;
clear(); // it's just empty. Not an error. clear(); // it's just empty. Not an error.
} else if(offset >= fParent->fLength) { } else if(offset >= fParent->fLength || (offset & 0x01)) {
LE_DEBUG_TR3("offset out of range: (%p) +%d", NULL, offset); LE_DEBUG_TR3("offset out of range or odd alignment: (%p) +%d", NULL, offset);
err = LE_INDEX_OUT_OF_BOUNDS_ERROR; err = LE_INDEX_OUT_OF_BOUNDS_ERROR;
clear(); clear();
} else { } else {
......
...@@ -58,7 +58,7 @@ le_uint32 LigatureSubstitutionSubtable::process(const LETableReference &base, Gl ...@@ -58,7 +58,7 @@ le_uint32 LigatureSubstitutionSubtable::process(const LETableReference &base, Gl
if( LE_FAILURE(success) ) { return 0; } if( LE_FAILURE(success) ) { return 0; }
le_uint16 ligCount = SWAPW(ligSetTable->ligatureCount); le_uint16 ligCount = SWAPW(ligSetTable->ligatureCount);
LEReferenceTo<Offset> ligatureTableOffsetArray(base, success, ligSetTable->ligatureTableOffsetArray, ligCount); LEReferenceToArrayOf<Offset> ligatureTableOffsetArray(base, success, ligSetTable->ligatureTableOffsetArray, ligCount);
for (le_uint16 lig = 0; LE_SUCCESS(success) && lig < ligCount; lig += 1) { for (le_uint16 lig = 0; LE_SUCCESS(success) && lig < ligCount; lig += 1) {
Offset ligTableOffset = SWAPW(ligSetTable->ligatureTableOffsetArray[lig]); Offset ligTableOffset = SWAPW(ligSetTable->ligatureTableOffsetArray[lig]);
LEReferenceTo<LigatureTable> ligTable(ligSetTable, success, ligTableOffset); LEReferenceTo<LigatureTable> ligTable(ligSetTable, success, ligTableOffset);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册