From e6d4518f80c29b4b594897c84c6a46c1d3469364 Mon Sep 17 00:00:00 2001 From: David Turner Date: Fri, 27 Apr 2001 09:49:27 +0000 Subject: [PATCH] * src/base/ftbbox.c (BBox_Cubic_Check): fixed the coefficient normalization algorithm (invalid final bit position, and invalid shift computation..) --- ChangeLog | 6 ++++++ src/base/ftbbox.c | 10 +++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 559702d18..34feac6d1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2001-04-27 David Turner + + * src/base/ftbbox.c (BBox_Cubic_Check): fixed the coefficient + normalization algorithm (invalid final bit position, and invalid + shift computation..) + 2001-04-26 Werner Lemberg * builds/unix/config.guess, builds/unix/config.sub: Updated to diff --git a/src/base/ftbbox.c b/src/base/ftbbox.c index 091a7bbfb..07700e500 100644 --- a/src/base/ftbbox.c +++ b/src/base/ftbbox.c @@ -382,25 +382,25 @@ if ( t1 == 0 ) /* all coefficients are 0! */ return; - if ( t1 > 0xFFFFFFL ) + if ( t1 > 0x7FFFFFL ) { do { - shift--; + shift++; t1 >>= 1; - } while ( t1 > 0xFFFFFFL ); + } while ( t1 > 0x7FFFFFL ); a >>= shift; b >>= shift; c >>= shift; } - else if ( t1 < 0x800000L ) + else if ( t1 < 0x400000L ) { do { shift++; t1 <<= 1; - } while ( t1 < 0x800000L ); + } while ( t1 < 0x400000L ); a <<= shift; b <<= shift;