[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:
Cosimo Lupo 2022-07-06 17:29:00 +01:00
parent 1ec0ac4877
commit a08140dc76

View File

@ -202,6 +202,8 @@ def VarStore_subset_varidxes(self, varIdxes, optimize=True, retainFirstMap=False
# Sort out used varIdxes by major/minor.
used = {}
for varIdx in varIdxes:
if varIdx == NO_VARIATION_INDEX:
continue
major = varIdx >> 16
minor = varIdx & 0xFFFF
d = used.get(major)
@ -216,7 +218,7 @@ def VarStore_subset_varidxes(self, varIdxes, optimize=True, retainFirstMap=False
varData = self.VarData
newVarData = []
varDataMap = {}
varDataMap = {NO_VARIATION_INDEX: NO_VARIATION_INDEX}
for major,data in enumerate(varData):
usedMinors = used.get(major)
if usedMinors is None: