From fa22ec1cfba5975c0622e374f8506c742d3f8d18 Mon Sep 17 00:00:00 2001 From: Werner Lemberg Date: Sat, 17 Nov 2012 11:45:24 +0100 Subject: [PATCH] * src/base/fttrigon.c (ft_trig_downscale): Make 64bit version work. --- ChangeLog | 4 ++++ src/base/fttrigon.c | 19 ++++++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index f6b3d5207..3f501aa5e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2012-11-17 Werner Lemberg + + * src/base/fttrigon.c (ft_trig_downscale): Make 64bit version work. + 2012-11-15 Alexei Podtelezhnikov [base] Fix integer overflows in dd5718c7d67a. diff --git a/src/base/fttrigon.c b/src/base/fttrigon.c index fdf433ab8..1556984ce 100644 --- a/src/base/fttrigon.c +++ b/src/base/fttrigon.c @@ -4,7 +4,7 @@ /* */ /* FreeType trigonometric functions (body). */ /* */ -/* Copyright 2001, 2002, 2003, 2004, 2005 by */ +/* Copyright 2001-2005, 2012 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -21,6 +21,11 @@ #include FT_TRIGONOMETRY_H +#ifdef FT_LONG64 + typedef FT_INT64 FT_Int64; +#endif + + /* the following is 0.2715717684432231 * 2^30 */ #define FT_TRIG_COSCALE 0x11616E8EUL @@ -39,7 +44,7 @@ #define FT_TRIG_SCALE 1166391785UL /* 0x4585BA38UL */ -#ifdef FT_CONFIG_HAS_INT64 +#ifdef FT_LONG64 /* multiply a given value by the CORDIC shrink factor */ static FT_Fixed @@ -58,7 +63,7 @@ return ( s >= 0 ) ? val : -val; } -#else /* !FT_CONFIG_HAS_INT64 */ +#else /* !FT_LONG64 */ /* multiply a given value by the CORDIC shrink factor */ static FT_Fixed @@ -72,10 +77,10 @@ val = ( val >= 0 ) ? val : -val; v1 = (FT_UInt32)val >> 16; - v2 = (FT_UInt32)(val & 0xFFFFL); + v2 = (FT_UInt32)( val & 0xFFFFL ); - k1 = (FT_UInt32)FT_TRIG_SCALE >> 16; /* constant */ - k2 = (FT_UInt32)(FT_TRIG_SCALE & 0xFFFFL); /* constant */ + k1 = (FT_UInt32)FT_TRIG_SCALE >> 16; /* constant */ + k2 = (FT_UInt32)( FT_TRIG_SCALE & 0xFFFFL ); /* constant */ hi = k1 * v1; lo1 = k1 * v2 + k2 * v1; /* can't overflow */ @@ -93,7 +98,7 @@ return ( s >= 0 ) ? val : -val; } -#endif /* !FT_CONFIG_HAS_INT64 */ +#endif /* !FT_LONG64 */ static FT_Int