[varStore/subset] correctly handle NO_VARIATION_INDEX when subsetting varidxes
otherwise GDEF/GPOS.remap_device_varidxes may fail with KeyError attempting to map a NO_VARIATION_INDEX
This commit is contained in:
parent
1ec0ac4877
commit
a08140dc76
@ -202,6 +202,8 @@ def VarStore_subset_varidxes(self, varIdxes, optimize=True, retainFirstMap=False
|
|||||||
# Sort out used varIdxes by major/minor.
|
# Sort out used varIdxes by major/minor.
|
||||||
used = {}
|
used = {}
|
||||||
for varIdx in varIdxes:
|
for varIdx in varIdxes:
|
||||||
|
if varIdx == NO_VARIATION_INDEX:
|
||||||
|
continue
|
||||||
major = varIdx >> 16
|
major = varIdx >> 16
|
||||||
minor = varIdx & 0xFFFF
|
minor = varIdx & 0xFFFF
|
||||||
d = used.get(major)
|
d = used.get(major)
|
||||||
@ -216,7 +218,7 @@ def VarStore_subset_varidxes(self, varIdxes, optimize=True, retainFirstMap=False
|
|||||||
|
|
||||||
varData = self.VarData
|
varData = self.VarData
|
||||||
newVarData = []
|
newVarData = []
|
||||||
varDataMap = {}
|
varDataMap = {NO_VARIATION_INDEX: NO_VARIATION_INDEX}
|
||||||
for major,data in enumerate(varData):
|
for major,data in enumerate(varData):
|
||||||
usedMinors = used.get(major)
|
usedMinors = used.get(major)
|
||||||
if usedMinors is None:
|
if usedMinors is None:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user