aboutsummaryrefslogtreecommitdiff
path: root/Lib/fontTools/ttLib/tables/_c_m_a_p.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/fontTools/ttLib/tables/_c_m_a_p.py')
-rw-r--r--Lib/fontTools/ttLib/tables/_c_m_a_p.py10
1 files changed, 3 insertions, 7 deletions
diff --git a/Lib/fontTools/ttLib/tables/_c_m_a_p.py b/Lib/fontTools/ttLib/tables/_c_m_a_p.py
index d0c6c41f..0519e78b 100644
--- a/Lib/fontTools/ttLib/tables/_c_m_a_p.py
+++ b/Lib/fontTools/ttLib/tables/_c_m_a_p.py
@@ -1,6 +1,7 @@
from __future__ import print_function, division, absolute_import
from fontTools.misc.py23 import *
from fontTools.misc.textTools import safeEval, readHex
+from fontTools.ttLib import getSearchRange
from fontTools.unicode import Unicode
from . import DefaultTable
import sys
@@ -699,8 +700,6 @@ class cmap_format_4(CmapSubtable):
def compile(self, ttFont):
if self.data:
return struct.pack(">HHH", self.format, self.length, self.language) + self.data
-
- from fontTools.ttLib.sfnt import maxPowerOfTwo
charCodes = list(self.cmap.keys())
lenCharCodes = len(charCodes)
@@ -775,13 +774,10 @@ class cmap_format_4(CmapSubtable):
idDelta.append(1) # 0xffff + 1 == (tadaa!) 0. So this end code maps to .notdef
idRangeOffset.append(0)
- # Insane.
+ # Insane.
segCount = len(endCode)
segCountX2 = segCount * 2
- maxExponent = maxPowerOfTwo(segCount)
- searchRange = 2 * (2 ** maxExponent)
- entrySelector = maxExponent
- rangeShift = 2 * segCount - searchRange
+ searchRange, entrySelector, rangeShift = getSearchRange(segCount, 2)
charCodeArray = array.array("H", endCode + [0] + startCode)
idDeltaArray = array.array("H", idDelta)