Merge pull request #827 from anthrotype/reduce-empty-sequence

[varLib.merger] set initializer for reduce() to handle empty sequences
This commit is contained in:
Cosimo Lupo 2017-01-30 17:17:40 +00:00 committed by GitHub
commit 4f8f64e14e
2 changed files with 5 additions and 4 deletions

View File

@ -6,7 +6,6 @@ from fontTools.misc.py23 import *
from fontTools.ttLib import TTFont
from fontTools.varLib import designspace, models
from fontTools.varLib.merger import InstancerMerger
from functools import reduce
import os.path

View File

@ -7,6 +7,8 @@ from fontTools.ttLib.tables import otTables as ot
from fontTools.ttLib.tables import otBase as otBase
from fontTools.ttLib.tables.DefaultTable import DefaultTable
from fontTools.varLib import builder
from functools import reduce
class Merger(object):
@ -197,7 +199,7 @@ def _Lookup_PairPos_get_effective_value_pair(self, firstGlyph, secondGlyph):
@AligningMerger.merger(ot.SinglePos)
def merge(merger, self, lst):
self.ValueFormat = valueFormat = reduce(int.__or__, [l.ValueFormat for l in lst])
self.ValueFormat = valueFormat = reduce(int.__or__, [l.ValueFormat for l in lst], 0)
assert valueFormat & ~0xF == 0, valueFormat
# If all have same coverage table and all are format 1,
@ -360,8 +362,8 @@ def _Lookup_PairPosFormat1_subtables_merge_overlay(lst, font):
self = ot.PairPos()
self.Format = 1
self.Coverage = ot.Coverage()
self.ValueFormat1 = reduce(int.__or__, [l.ValueFormat1 for l in lst])
self.ValueFormat2 = reduce(int.__or__, [l.ValueFormat2 for l in lst])
self.ValueFormat1 = reduce(int.__or__, [l.ValueFormat1 for l in lst], 0)
self.ValueFormat2 = reduce(int.__or__, [l.ValueFormat2 for l in lst], 0)
# Align them
glyphs, padded = _merge_GlyphOrders(font,