ref: dac5644ceaf07cf8c13b639bae176af7bb42643c
parent: 6cc425db912497bdced7004e4b6af0dca2852ca4
author: Alexei Podtelezhnikov <[email protected]>
date: Sat Mar 21 19:30:16 EDT 2015
[base] Optimize `FT_Angle_Diff'. Under normal circumstances we are usually close to the desired range of angle values, so that the remainder is not really necessary. * src/base/fttrigon.c (FT_Angle_Diff): Use loops instead of remainder. * src/autofit/aftypes.h (AF_ANGLE_DIFF): Ditto in the unused macro.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2015-03-21 Alexei Podtelezhnikov <[email protected]>
+
+ [base] Optimize `FT_Angle_Diff'.
+
+ Under normal circumstances we are usually close to the desired range
+ of angle values, so that the remainder is not really necessary.
+
+ * src/base/fttrigon.c (FT_Angle_Diff): Use loops instead of remainder.
+
+ * src/autofit/aftypes.h (AF_ANGLE_DIFF): Ditto in the unused macro.
+
2015-03-21 Werner Lemberg <[email protected]>
[truetype] Improve `gvar' handling.
--- a/src/autofit/aftypes.h
+++ b/src/autofit/aftypes.h
@@ -138,11 +138,10 @@
AF_Angle _delta = (angle2) - (angle1); \
\
\
- _delta %= AF_ANGLE_2PI; \
- if ( _delta < 0 ) \
+ while ( _delta <= -AF_ANGLE_PI ) \
_delta += AF_ANGLE_2PI; \
\
- if ( _delta > AF_ANGLE_PI ) \
+ while ( _delta > AF_ANGLE_PI ) \
_delta -= AF_ANGLE_2PI; \
\
result = _delta; \
--- a/src/base/fttrigon.c
+++ b/src/base/fttrigon.c
@@ -512,11 +512,10 @@
FT_Angle delta = angle2 - angle1;
- delta %= FT_ANGLE_2PI;
- if ( delta < 0 )
+ while ( delta <= -FT_ANGLE_PI )
delta += FT_ANGLE_2PI;
- if ( delta > FT_ANGLE_PI )
+ while ( delta > FT_ANGLE_PI )
delta -= FT_ANGLE_2PI;
return delta;