diff --git a/src/share/native/sun/font/layout/LookupProcessor.cpp b/src/share/native/sun/font/layout/LookupProcessor.cpp index b5d750d9a981e6d1d341204ffb071aa12236da37..0629e9d6da176def4fe5d7978ab4da5d778de756 100644 --- a/src/share/native/sun/font/layout/LookupProcessor.cpp +++ b/src/share/native/sun/font/layout/LookupProcessor.cpp @@ -255,6 +255,7 @@ LookupProcessor::LookupProcessor(const LETableReference &baseAddress, if (requiredFeatureIndex != 0xFFFF) { requiredFeatureTable = featureListTable->getFeatureTable(featureListTable, requiredFeatureIndex, &requiredFeatureTag, success); + if (LE_FAILURE(success)) return; featureReferences += SWAPW(requiredFeatureTable->lookupCount); } @@ -292,7 +293,7 @@ LookupProcessor::LookupProcessor(const LETableReference &baseAddress, } featureTable = featureListTable->getFeatureTable(featureListTable, featureIndex, &featureTag, success); - + if (LE_FAILURE(success)) continue; if (featureTag == fm.tag) { count += selectLookups(featureTable, fm.mask, order + count, success); } @@ -319,7 +320,7 @@ LookupProcessor::LookupProcessor(const LETableReference &baseAddress, #endif featureTable = featureListTable->getFeatureTable(featureListTable, featureIndex, &featureTag, success); - + if (LE_FAILURE(success)) continue; if (featureTag == fm.tag) { order += selectLookups(featureTable, fm.mask, order, success); }