3
# Date 1339077299 -3600
4
# Node ID 25e9363d907d3cc5104a5ec47c1638b36b63559c
5
# Parent 7047bf04103450562b485e00c622fea18b227eea
6
7143617: Improve fontmanager layout lookup operations
9
diff --git a/src/share/native/sun/font/layout/LookupProcessor.cpp b/src/share/native/sun/font/layout/LookupProcessor.cpp
10
--- openjdk/jdk/src/share/native/sun/font/layout/LookupProcessor.cpp
11
+++ openjdk/jdk/src/share/native/sun/font/layout/LookupProcessor.cpp
14
if (selectMask != 0) {
15
const LookupTable *lookupTable = lookupListTable->getLookupTable(lookup);
20
le_uint16 lookupFlags = SWAPW(lookupTable->lookupFlags);
22
glyphIterator.reset(lookupFlags, selectMask);
24
for (le_uint16 lookup = 0; lookup < lookupCount; lookup += 1) {
25
le_uint16 lookupListIndex = SWAPW(featureTable->lookupListIndexArray[lookup]);
27
+ if (lookupListIndex >= lookupSelectCount)
30
lookupSelectArray[lookupListIndex] |= featureMask;
31
lookupOrderArray[store++] = lookupListIndex;
34
Offset scriptListOffset, Offset featureListOffset, Offset lookupListOffset,
35
LETag scriptTag, LETag languageTag, const FeatureMap *featureMap,
36
le_int32 featureMapCount, le_bool orderFeatures)
37
- : lookupListTable(NULL), featureListTable(NULL), lookupSelectArray(NULL),
38
+ : lookupListTable(NULL), featureListTable(NULL), lookupSelectArray(NULL), lookupSelectCount(0),
39
lookupOrderArray(NULL), lookupOrderCount(0)
41
const ScriptListTable *scriptListTable = NULL;
43
lookupSelectArray[i] = 0;
46
+ lookupSelectCount = lookupListCount;
48
le_int32 count, order = 0;
49
le_int32 featureReferences = 0;
50
const FeatureTable *featureTable = NULL;
52
le_uint16 featureIndex = SWAPW(langSysTable->featureIndexArray[feature]);
54
featureTable = featureListTable->getFeatureTable(featureIndex, &featureTag);
59
featureReferences += SWAPW(featureTable->lookupCount);
62
diff --git a/src/share/native/sun/font/layout/LookupProcessor.h b/src/share/native/sun/font/layout/LookupProcessor.h
63
--- openjdk/jdk/src/share/native/sun/font/layout/LookupProcessor.h
64
+++ openjdk/jdk/src/share/native/sun/font/layout/LookupProcessor.h
66
const FeatureListTable *featureListTable;
68
FeatureMask *lookupSelectArray;
69
+ le_uint32 lookupSelectCount;
71
le_uint16 *lookupOrderArray;
72
le_uint32 lookupOrderCount;