Fix Savannah bug #29335. * src/raster/ftraster.c (Line_Up): Use slow multiplication to prevent overflow. This shouldn't have any serious impact on speed, however.
diff --git a/ChangeLog b/ChangeLog
index a8fa18f..c22e570 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2010-04-05 Ken Sharp <ken.sharp@artifex.com>
+
+ Fix Savannah bug #29335.
+
+ * src/raster/ftraster.c (Line_Up): Use slow multiplication to
+ prevent overflow. This shouldn't have any serious impact on speed,
+ however.
+
2010-04-05 Werner Lemberg <wl@gnu.org>
Add new function `FT_Library_SetLcdFilterWeights'.
diff --git a/src/raster/ftraster.c b/src/raster/ftraster.c
index 86d11d8..cdde471 100644
--- a/src/raster/ftraster.c
+++ b/src/raster/ftraster.c
@@ -1122,13 +1122,13 @@
if ( Dx > 0 )
{
- Ix = ( ras.precision * Dx ) / Dy;
+ Ix = SMulDiv( ras.precision, Dx, Dy);
Rx = ( ras.precision * Dx ) % Dy;
Dx = 1;
}
else
{
- Ix = -( ( ras.precision * -Dx ) / Dy );
+ Ix = SMulDiv( ras.precision, -Dx, Dy) * -1;
Rx = ( ras.precision * -Dx ) % Dy;
Dx = -1;
}