aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/fonttools/fontTools/varLib/iup.py
diff options
context:
space:
mode:
authorrobot-piglet <robot-piglet@yandex-team.com>2024-12-18 10:16:08 +0300
committerrobot-piglet <robot-piglet@yandex-team.com>2024-12-18 10:29:14 +0300
commit691a35e0546dbd763dd51657b1a3816a3c40e094 (patch)
tree651c5813885adb4fa8993f44b364a0a7a148e7ad /contrib/python/fonttools/fontTools/varLib/iup.py
parent72b6bf1f88ac4ec4ed2adf6dda915278c5d2b924 (diff)
downloadydb-691a35e0546dbd763dd51657b1a3816a3c40e094.tar.gz
Intermediate changes
commit_hash:1a5e9f4585838729a12fdcba5306caddb2c0c7ac
Diffstat (limited to 'contrib/python/fonttools/fontTools/varLib/iup.py')
-rw-r--r--contrib/python/fonttools/fontTools/varLib/iup.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/contrib/python/fonttools/fontTools/varLib/iup.py b/contrib/python/fonttools/fontTools/varLib/iup.py
index 76555f3508..9ff6c0eca3 100644
--- a/contrib/python/fonttools/fontTools/varLib/iup.py
+++ b/contrib/python/fonttools/fontTools/varLib/iup.py
@@ -1,12 +1,9 @@
try:
import cython
-
- COMPILED = cython.compiled
except (AttributeError, ImportError):
# if cython not installed, use mock module with no-op decorators and types
from fontTools.misc import cython
-
- COMPILED = False
+COMPILED = cython.compiled
from typing import (
Sequence,
@@ -77,7 +74,14 @@ def iup_segment(
d = d2
else:
# Interpolate
- d = d1 + (x - x1) * scale
+ #
+ # NOTE: we assign an explicit intermediate variable here in
+ # order to disable a fused mul-add optimization. See:
+ #
+ # - https://godbolt.org/z/YsP4T3TqK,
+ # - https://github.com/fonttools/fonttools/issues/3703
+ nudge = (x - x1) * scale
+ d = d1 + nudge
out.append(d)