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.ttLib import TTFont
from fontTools.varLib import designspace, models from fontTools.varLib import designspace, models
from fontTools.varLib.merger import InstancerMerger from fontTools.varLib.merger import InstancerMerger
from functools import reduce
import os.path 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 import otBase as otBase
from fontTools.ttLib.tables.DefaultTable import DefaultTable from fontTools.ttLib.tables.DefaultTable import DefaultTable
from fontTools.varLib import builder from fontTools.varLib import builder
from functools import reduce
class Merger(object): class Merger(object):
@ -197,7 +199,7 @@ def _Lookup_PairPos_get_effective_value_pair(self, firstGlyph, secondGlyph):
@AligningMerger.merger(ot.SinglePos) @AligningMerger.merger(ot.SinglePos)
def merge(merger, self, lst): 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 assert valueFormat & ~0xF == 0, valueFormat
# If all have same coverage table and all are format 1, # 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 = ot.PairPos()
self.Format = 1 self.Format = 1
self.Coverage = ot.Coverage() self.Coverage = ot.Coverage()
self.ValueFormat1 = reduce(int.__or__, [l.ValueFormat1 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]) self.ValueFormat2 = reduce(int.__or__, [l.ValueFormat2 for l in lst], 0)
# Align them # Align them
glyphs, padded = _merge_GlyphOrders(font, glyphs, padded = _merge_GlyphOrders(font,