Mercurial > hg > release > icedtea7-forest-2.5 > jdk
changeset 8110:be61bf86aee9
8056276: Fontmanager feature improvements
Reviewed-by: prr
author | bae |
---|---|
date | Tue, 07 Oct 2014 12:12:52 +0400 |
parents | 45f30f5524d4 |
children | 122ac65402e1 |
files | src/share/native/sun/font/layout/CursiveAttachmentSubtables.cpp src/share/native/sun/font/layout/Features.cpp src/share/native/sun/font/layout/LigatureSubstSubtables.cpp src/share/native/sun/font/layout/MultipleSubstSubtables.cpp |
diffstat | 4 files changed, 11 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/native/sun/font/layout/CursiveAttachmentSubtables.cpp Mon Oct 06 12:49:38 2014 -0700 +++ b/src/share/native/sun/font/layout/CursiveAttachmentSubtables.cpp Tue Oct 07 12:12:52 2014 +0400 @@ -45,6 +45,9 @@ le_int32 coverageIndex = getGlyphCoverage(base, glyphID, success); le_uint16 eeCount = SWAPW(entryExitCount); + LEReferenceToArrayOf<EntryExitRecord> + entryExitRecordsArrayRef(base, success, entryExitRecords, coverageIndex); + if (coverageIndex < 0 || coverageIndex >= eeCount || LE_FAILURE(success)) { glyphIterator->setCursiveGlyph(); return 0;
--- a/src/share/native/sun/font/layout/Features.cpp Mon Oct 06 12:49:38 2014 -0700 +++ b/src/share/native/sun/font/layout/Features.cpp Tue Oct 07 12:12:52 2014 +0400 @@ -40,6 +40,9 @@ LEReferenceTo<FeatureTable> FeatureListTable::getFeatureTable(const LETableReference &base, le_uint16 featureIndex, LETag *featureTag, LEErrorCode &success) const { + LEReferenceToArrayOf<FeatureRecord> + featureRecordArrayRef(base, success, featureRecordArray, featureIndex); + if (featureIndex >= SWAPW(featureCount) || LE_FAILURE(success)) { return LEReferenceTo<FeatureTable>(); }
--- a/src/share/native/sun/font/layout/LigatureSubstSubtables.cpp Mon Oct 06 12:49:38 2014 -0700 +++ b/src/share/native/sun/font/layout/LigatureSubstSubtables.cpp Tue Oct 07 12:12:52 2014 +0400 @@ -64,6 +64,9 @@ LEReferenceTo<LigatureTable> ligTable(ligSetTable, success, ligTableOffset); if(LE_FAILURE(success)) { return 0; } le_uint16 compCount = SWAPW(ligTable->compCount) - 1; + LEReferenceToArrayOf<TTGlyphID> + componentArrayRef(base, success, ligTable->componentArray, compCount); + if (LE_FAILURE(success)) { return 0; } le_int32 startPosition = glyphIterator->getCurrStreamPosition(); TTGlyphID ligGlyph = SWAPW(ligTable->ligGlyph); le_uint16 comp;
--- a/src/share/native/sun/font/layout/MultipleSubstSubtables.cpp Mon Oct 06 12:49:38 2014 -0700 +++ b/src/share/native/sun/font/layout/MultipleSubstSubtables.cpp Tue Oct 07 12:12:52 2014 +0400 @@ -61,6 +61,8 @@ le_int32 coverageIndex = getGlyphCoverage(base, glyph, success); le_uint16 seqCount = SWAPW(sequenceCount); + LEReferenceToArrayOf<Offset> + sequenceTableOffsetArrayRef(base, success, sequenceTableOffsetArray, seqCount); if (LE_FAILURE(success)) { return 0;