[CFFToCFF2] Allow fdIndex==0
Oops.
This commit is contained in:
parent
7fadfa4e81
commit
2225c84a1b
@ -81,7 +81,7 @@ def _convertCFFToCFF2(cff, otFont):
|
|||||||
|
|
||||||
thisLocalSubrs = (
|
thisLocalSubrs = (
|
||||||
localSubrs[fdIndex]
|
localSubrs[fdIndex]
|
||||||
if fdIndex
|
if fdIndex is not None
|
||||||
else (
|
else (
|
||||||
getattr(topDict.Private, "Subrs", [])
|
getattr(topDict.Private, "Subrs", [])
|
||||||
if hasattr(topDict, "Private")
|
if hasattr(topDict, "Private")
|
||||||
@ -104,9 +104,10 @@ def _convertCFFToCFF2(cff, otFont):
|
|||||||
# just pop the first number since it may be a subroutine call.
|
# just pop the first number since it may be a subroutine call.
|
||||||
# Instead, when seeing that, we embed the subroutine and recurse.
|
# Instead, when seeing that, we embed the subroutine and recurse.
|
||||||
# If this ever happened, we later prune unused subroutines.
|
# If this ever happened, we later prune unused subroutines.
|
||||||
while program[1] in ["callsubr", "callgsubr"]:
|
while len(program) >= 2 and program[1] in ["callsubr", "callgsubr"]:
|
||||||
removeUnusedSubrs = True
|
removeUnusedSubrs = True
|
||||||
subrNumber = program.pop(0)
|
subrNumber = program.pop(0)
|
||||||
|
assert isinstance(subrNumber, int), subrNumber
|
||||||
op = program.pop(0)
|
op = program.pop(0)
|
||||||
bias = extractor.localBias if op == "callsubr" else extractor.globalBias
|
bias = extractor.localBias if op == "callsubr" else extractor.globalBias
|
||||||
subrNumber += bias
|
subrNumber += bias
|
||||||
@ -114,6 +115,7 @@ def _convertCFFToCFF2(cff, otFont):
|
|||||||
subrProgram = subrSet[subrNumber].program
|
subrProgram = subrSet[subrNumber].program
|
||||||
program[:0] = subrProgram
|
program[:0] = subrProgram
|
||||||
# Now pop the actual width
|
# Now pop the actual width
|
||||||
|
assert len(program) >= 1, program
|
||||||
program.pop(0)
|
program.pop(0)
|
||||||
|
|
||||||
if program and program[-1] == "endchar":
|
if program and program[-1] == "endchar":
|
||||||
|
Loading…
x
Reference in New Issue
Block a user