ref: dcd8de272f940065b6a326b16518e3e5acb695a6
parent: 7bffeacd7ef77d050e8bcbbc4e4ab761fa7861b9
author: Werner Lemberg <[email protected]>
date: Fri Jun 9 07:21:58 EDT 2017
*/*: Remove `OVERFLOW_' prefix. This increases readability.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2017-06-09 Werner Lemberg <[email protected]>
+
+ */*: Remove `OVERFLOW_' prefix.
+
+ This increases readability.
+
2017-06-07 Werner Lemberg <[email protected]>
[cff, truetype] Integer overflows.
--- a/include/freetype/internal/ftcalc.h
+++ b/include/freetype/internal/ftcalc.h
@@ -417,29 +417,29 @@
*
* Use with care!
*/
-#define OVERFLOW_ADD_INT( a, b ) \
+#define ADD_INT( a, b ) \
(FT_Int)( (FT_UInt)(a) + (FT_UInt)(b) )
-#define OVERFLOW_SUB_INT( a, b ) \
+#define SUB_INT( a, b ) \
(FT_Int)( (FT_UInt)(a) - (FT_UInt)(b) )
-#define OVERFLOW_MUL_INT( a, b ) \
+#define MUL_INT( a, b ) \
(FT_Int)( (FT_UInt)(a) * (FT_UInt)(b) )
#define NEG_INT( a ) \
(FT_Int)( -(FT_UInt)(a) )
-#define OVERFLOW_ADD_LONG( a, b ) \
+#define ADD_LONG( a, b ) \
(FT_Long)( (FT_ULong)(a) + (FT_ULong)(b) )
-#define OVERFLOW_SUB_LONG( a, b ) \
+#define SUB_LONG( a, b ) \
(FT_Long)( (FT_ULong)(a) - (FT_ULong)(b) )
-#define OVERFLOW_MUL_LONG( a, b ) \
+#define MUL_LONG( a, b ) \
(FT_Long)( (FT_ULong)(a) * (FT_ULong)(b) )
#define NEG_LONG( a ) \
(FT_Long)( -(FT_ULong)(a) )
-#define OVERFLOW_ADD_INT32( a, b ) \
+#define ADD_INT32( a, b ) \
(FT_Int32)( (FT_UInt32)(a) + (FT_UInt32)(b) )
-#define OVERFLOW_SUB_INT32( a, b ) \
+#define SUB_INT32( a, b ) \
(FT_Int32)( (FT_UInt32)(a) - (FT_UInt32)(b) )
-#define OVERFLOW_MUL_INT32( a, b ) \
+#define MUL_INT32( a, b ) \
(FT_Int32)( (FT_UInt32)(a) * (FT_UInt32)(b) )
#define NEG_INT32( a ) \
(FT_Int32)( -(FT_UInt32)(a) )
--- a/src/base/ftcalc.c
+++ b/src/base/ftcalc.c
@@ -87,8 +87,7 @@
FT_EXPORT_DEF( FT_Fixed )
FT_RoundFix( FT_Fixed a )
{
- return ( OVERFLOW_ADD_LONG( a,
- 0x8000L - ( a < 0 ) ) ) & ~0xFFFFL;
+ return ( ADD_LONG( a, 0x8000L - ( a < 0 ) ) ) & ~0xFFFFL;
}
@@ -97,7 +96,7 @@
FT_EXPORT_DEF( FT_Fixed )
FT_CeilFix( FT_Fixed a )
{
- return ( OVERFLOW_ADD_LONG( a, 0xFFFFL ) ) & ~0xFFFFL;
+ return ( ADD_LONG( a, 0xFFFFL ) ) & ~0xFFFFL;
}
@@ -668,14 +667,14 @@
if ( !a || !b )
return;
- xx = OVERFLOW_ADD_LONG( FT_MulFix( a->xx, b->xx ),
- FT_MulFix( a->xy, b->yx ) );
- xy = OVERFLOW_ADD_LONG( FT_MulFix( a->xx, b->xy ),
- FT_MulFix( a->xy, b->yy ) );
- yx = OVERFLOW_ADD_LONG( FT_MulFix( a->yx, b->xx ),
- FT_MulFix( a->yy, b->yx ) );
- yy = OVERFLOW_ADD_LONG( FT_MulFix( a->yx, b->xy ),
- FT_MulFix( a->yy, b->yy ) );
+ xx = ADD_LONG( FT_MulFix( a->xx, b->xx ),
+ FT_MulFix( a->xy, b->yx ) );
+ xy = ADD_LONG( FT_MulFix( a->xx, b->xy ),
+ FT_MulFix( a->xy, b->yy ) );
+ yx = ADD_LONG( FT_MulFix( a->yx, b->xx ),
+ FT_MulFix( a->yy, b->yx ) );
+ yy = ADD_LONG( FT_MulFix( a->yx, b->xy ),
+ FT_MulFix( a->yy, b->yy ) );
b->xx = xx;
b->xy = xy;
@@ -730,14 +729,14 @@
if ( !a || !b )
return;
- xx = OVERFLOW_ADD_LONG( FT_MulDiv( a->xx, b->xx, val ),
- FT_MulDiv( a->xy, b->yx, val ) );
- xy = OVERFLOW_ADD_LONG( FT_MulDiv( a->xx, b->xy, val ),
- FT_MulDiv( a->xy, b->yy, val ) );
- yx = OVERFLOW_ADD_LONG( FT_MulDiv( a->yx, b->xx, val ),
- FT_MulDiv( a->yy, b->yx, val ) );
- yy = OVERFLOW_ADD_LONG( FT_MulDiv( a->yx, b->xy, val ),
- FT_MulDiv( a->yy, b->yy, val ) );
+ xx = ADD_LONG( FT_MulDiv( a->xx, b->xx, val ),
+ FT_MulDiv( a->xy, b->yx, val ) );
+ xy = ADD_LONG( FT_MulDiv( a->xx, b->xy, val ),
+ FT_MulDiv( a->xy, b->yy, val ) );
+ yx = ADD_LONG( FT_MulDiv( a->yx, b->xx, val ),
+ FT_MulDiv( a->yy, b->yx, val ) );
+ yy = ADD_LONG( FT_MulDiv( a->yx, b->xy, val ),
+ FT_MulDiv( a->yy, b->yy, val ) );
b->xx = xx;
b->xy = xy;
@@ -761,10 +760,10 @@
if ( !vector || !matrix )
return;
- xz = OVERFLOW_ADD_LONG( FT_MulDiv( vector->x, matrix->xx, val ),
- FT_MulDiv( vector->y, matrix->xy, val ) );
- yz = OVERFLOW_ADD_LONG( FT_MulDiv( vector->x, matrix->yx, val ),
- FT_MulDiv( vector->y, matrix->yy, val ) );
+ xz = ADD_LONG( FT_MulDiv( vector->x, matrix->xx, val ),
+ FT_MulDiv( vector->y, matrix->xy, val ) );
+ yz = ADD_LONG( FT_MulDiv( vector->x, matrix->yx, val ),
+ FT_MulDiv( vector->y, matrix->yy, val ) );
vector->x = xz;
vector->y = yz;
@@ -928,11 +927,11 @@
/* we silently ignore overflow errors, since such large values */
/* lead to even more (harmless) rendering errors later on */
- if ( OVERFLOW_ADD_LONG( FT_ABS( in_x ), FT_ABS( out_y ) ) <= 131071L &&
- OVERFLOW_ADD_LONG( FT_ABS( in_y ), FT_ABS( out_x ) ) <= 131071L )
+ if ( ADD_LONG( FT_ABS( in_x ), FT_ABS( out_y ) ) <= 131071L &&
+ ADD_LONG( FT_ABS( in_y ), FT_ABS( out_x ) ) <= 131071L )
{
- FT_Long z1 = OVERFLOW_MUL_LONG( in_x, out_y );
- FT_Long z2 = OVERFLOW_MUL_LONG( in_y, out_x );
+ FT_Long z1 = MUL_LONG( in_x, out_y );
+ FT_Long z2 = MUL_LONG( in_y, out_x );
if ( z1 > z2 )
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -581,18 +581,18 @@
metrics->horiBearingX = FT_PIX_FLOOR( metrics->horiBearingX );
metrics->horiBearingY = FT_PIX_CEIL ( metrics->horiBearingY );
- right = FT_PIX_CEIL( OVERFLOW_ADD_LONG( metrics->vertBearingX,
- metrics->width ) );
- bottom = FT_PIX_CEIL( OVERFLOW_ADD_LONG( metrics->vertBearingY,
- metrics->height ) );
+ right = FT_PIX_CEIL( ADD_LONG( metrics->vertBearingX,
+ metrics->width ) );
+ bottom = FT_PIX_CEIL( ADD_LONG( metrics->vertBearingY,
+ metrics->height ) );
metrics->vertBearingX = FT_PIX_FLOOR( metrics->vertBearingX );
metrics->vertBearingY = FT_PIX_FLOOR( metrics->vertBearingY );
- metrics->width = OVERFLOW_SUB_LONG( right,
- metrics->vertBearingX );
- metrics->height = OVERFLOW_SUB_LONG( bottom,
- metrics->vertBearingY );
+ metrics->width = SUB_LONG( right,
+ metrics->vertBearingX );
+ metrics->height = SUB_LONG( bottom,
+ metrics->vertBearingY );
}
else
{
@@ -599,18 +599,18 @@
metrics->vertBearingX = FT_PIX_FLOOR( metrics->vertBearingX );
metrics->vertBearingY = FT_PIX_FLOOR( metrics->vertBearingY );
- right = FT_PIX_CEIL ( OVERFLOW_ADD_LONG( metrics->horiBearingX,
- metrics->width ) );
- bottom = FT_PIX_FLOOR( OVERFLOW_SUB_LONG( metrics->horiBearingY,
- metrics->height ) );
+ right = FT_PIX_CEIL ( ADD_LONG( metrics->horiBearingX,
+ metrics->width ) );
+ bottom = FT_PIX_FLOOR( SUB_LONG( metrics->horiBearingY,
+ metrics->height ) );
metrics->horiBearingX = FT_PIX_FLOOR( metrics->horiBearingX );
metrics->horiBearingY = FT_PIX_CEIL ( metrics->horiBearingY );
- metrics->width = OVERFLOW_SUB_LONG( right,
- metrics->horiBearingX );
- metrics->height = OVERFLOW_SUB_LONG( metrics->horiBearingY,
- bottom );
+ metrics->width = SUB_LONG( right,
+ metrics->horiBearingX );
+ metrics->height = SUB_LONG( metrics->horiBearingY,
+ bottom );
}
metrics->horiAdvance = FT_PIX_ROUND( metrics->horiAdvance );
--- a/src/base/ftoutln.c
+++ b/src/base/ftoutln.c
@@ -1088,9 +1088,8 @@
v_cur.x = points[n].x >> xshift;
v_cur.y = points[n].y >> yshift;
- area = OVERFLOW_ADD_LONG(
- area,
- ( v_cur.y - v_prev.y ) * ( v_cur.x + v_prev.x ) );
+ area = ADD_LONG( area,
+ ( v_cur.y - v_prev.y ) * ( v_cur.x + v_prev.x ) );
v_prev = v_cur;
}
--- a/src/cff/cf2blues.c
+++ b/src/cff/cf2blues.c
@@ -194,9 +194,8 @@
blues->zone[blues->count].csTopEdge =
cf2_blueToFixed( blueValues[i + 1] );
- zoneHeight = OVERFLOW_SUB_INT32(
- blues->zone[blues->count].csTopEdge,
- blues->zone[blues->count].csBottomEdge );
+ zoneHeight = SUB_INT32( blues->zone[blues->count].csTopEdge,
+ blues->zone[blues->count].csBottomEdge );
if ( zoneHeight < 0 )
{
@@ -302,8 +301,7 @@
/* top edge */
flatFamilyEdge = cf2_blueToFixed( familyOtherBlues[j + 1] );
- diff = cf2_fixedAbs( OVERFLOW_SUB_INT32( flatEdge,
- flatFamilyEdge ) );
+ diff = cf2_fixedAbs( SUB_INT32( flatEdge, flatFamilyEdge ) );
if ( diff < minDiff && diff < csUnitsPerPixel )
{
@@ -321,8 +319,7 @@
/* top edge */
flatFamilyEdge = cf2_blueToFixed( familyBlues[1] );
- diff = cf2_fixedAbs( OVERFLOW_SUB_INT32( flatEdge,
- flatFamilyEdge ) );
+ diff = cf2_fixedAbs( SUB_INT32( flatEdge, flatFamilyEdge ) );
if ( diff < minDiff && diff < csUnitsPerPixel )
blues->zone[i].csFlatEdge = flatFamilyEdge;
@@ -345,8 +342,7 @@
/* adjust edges of top zone upward by twice darkening amount */
flatFamilyEdge += 2 * font->darkenY; /* bottom edge */
- diff = cf2_fixedAbs( OVERFLOW_SUB_INT32( flatEdge,
- flatFamilyEdge ) );
+ diff = cf2_fixedAbs( SUB_INT32( flatEdge, flatFamilyEdge ) );
if ( diff < minDiff && diff < csUnitsPerPixel )
{
@@ -503,8 +499,8 @@
if ( blues->suppressOvershoot )
dsNew = blues->zone[i].dsFlatEdge;
- else if ( OVERFLOW_SUB_INT32( blues->zone[i].csTopEdge,
- bottomHintEdge->csCoord ) >=
+ else if ( SUB_INT32( blues->zone[i].csTopEdge,
+ bottomHintEdge->csCoord ) >=
blues->blueShift )
{
/* guarantee minimum of 1 pixel overshoot */
--- a/src/cff/cf2font.c
+++ b/src/cff/cf2font.c
@@ -447,7 +447,7 @@
/* choose a constant for StdHW that depends on font contrast */
stdHW = cf2_getStdHW( decoder );
- if ( stdHW > 0 && font->stdVW > OVERFLOW_MUL_INT32( 2, stdHW ) )
+ if ( stdHW > 0 && font->stdVW > MUL_INT32( 2, stdHW ) )
font->stdHW = FT_DivFix( cf2_intToFixed( 75 ), emRatio );
else
{
--- a/src/cff/cf2ft.c
+++ b/src/cff/cf2ft.c
@@ -267,10 +267,8 @@
if ( *hinted )
{
- *x_scale = OVERFLOW_ADD_INT32( decoder->builder.glyph->x_scale,
- 32 ) / 64;
- *y_scale = OVERFLOW_ADD_INT32( decoder->builder.glyph->y_scale,
- 32 ) / 64;
+ *x_scale = ADD_INT32( decoder->builder.glyph->x_scale, 32 ) / 64;
+ *y_scale = ADD_INT32( decoder->builder.glyph->y_scale, 32 ) / 64;
}
else
{
--- a/src/cff/cf2hints.c
+++ b/src/cff/cf2hints.c
@@ -74,8 +74,8 @@
/* cross product of pt1 position from origin with pt2 position from */
/* pt1; we reduce the precision so that the result fits into 32 bits */
- return ( x1 >> 16 ) * ( OVERFLOW_SUB_INT32( y2, y1 ) >> 16 ) -
- ( y1 >> 16 ) * ( OVERFLOW_SUB_INT32( x2, x1 ) >> 16 );
+ return ( x1 >> 16 ) * ( SUB_INT32( y2, y1 ) >> 16 ) -
+ ( y1 >> 16 ) * ( SUB_INT32( x2, x1 ) >> 16 );
}
@@ -105,7 +105,7 @@
stemHintArray,
indexStemHint );
- width = OVERFLOW_SUB_INT32( stemHint->max, stemHint->min );
+ width = SUB_INT32( stemHint->max, stemHint->min );
if ( width == cf2_intToFixed( -21 ) )
{
@@ -185,9 +185,9 @@
/* darkening. Bottoms are not changed; tops are incremented by twice */
/* `darkenY'. */
if ( cf2_hint_isTop( hint ) )
- hint->csCoord = OVERFLOW_ADD_INT32( hint->csCoord, 2 * font->darkenY );
+ hint->csCoord = ADD_INT32( hint->csCoord, 2 * font->darkenY );
- hint->csCoord = OVERFLOW_ADD_INT32( hint->csCoord, hintOrigin );
+ hint->csCoord = ADD_INT32( hint->csCoord, hintOrigin );
hint->scale = scale;
hint->index = indexStemHint; /* index in original stem hint array */
@@ -331,11 +331,10 @@
if ( i == 0 && csCoord < hintmap->edge[0].csCoord )
{
/* special case for points below first edge: use uniform scale */
- return OVERFLOW_ADD_INT32(
- FT_MulFix( OVERFLOW_SUB_INT32( csCoord,
+ return ADD_INT32( FT_MulFix( SUB_INT32( csCoord,
hintmap->edge[0].csCoord ),
- hintmap->scale ),
- hintmap->edge[0].dsCoord );
+ hintmap->scale ),
+ hintmap->edge[0].dsCoord );
}
else
{
@@ -343,11 +342,10 @@
* Note: entries with duplicate csCoord are allowed.
* Use edge[i], the highest entry where csCoord >= entry[i].csCoord
*/
- return OVERFLOW_ADD_INT32(
- FT_MulFix( OVERFLOW_SUB_INT32( csCoord,
+ return ADD_INT32( FT_MulFix( SUB_INT32( csCoord,
hintmap->edge[i].csCoord ),
- hintmap->edge[i].scale ),
- hintmap->edge[i].dsCoord );
+ hintmap->edge[i].scale ),
+ hintmap->edge[i].dsCoord );
}
}
}
@@ -512,10 +510,9 @@
{
if ( hintmap->edge[i].csCoord != hintmap->edge[i - 1].csCoord )
hintmap->edge[i - 1].scale =
- FT_DivFix(
- OVERFLOW_SUB_INT32( hintmap->edge[i].dsCoord,
+ FT_DivFix( SUB_INT32( hintmap->edge[i].dsCoord,
hintmap->edge[i - 1].dsCoord ),
- OVERFLOW_SUB_INT32( hintmap->edge[i].csCoord,
+ SUB_INT32( hintmap->edge[i].csCoord,
hintmap->edge[i - 1].csCoord ) );
}
@@ -523,10 +520,9 @@
{
if ( hintmap->edge[j].csCoord != hintmap->edge[j - 1].csCoord )
hintmap->edge[j - 1].scale =
- FT_DivFix(
- OVERFLOW_SUB_INT32( hintmap->edge[j].dsCoord,
+ FT_DivFix( SUB_INT32( hintmap->edge[j].dsCoord,
hintmap->edge[j - 1].dsCoord ),
- OVERFLOW_SUB_INT32( hintmap->edge[j].csCoord,
+ SUB_INT32( hintmap->edge[j].csCoord,
hintmap->edge[j - 1].csCoord ) );
i += 1; /* skip upper edge on next loop */
@@ -647,13 +643,12 @@
CF2_Fixed midpoint =
cf2_hintmap_map(
hintmap->initialHintMap,
- OVERFLOW_ADD_INT32( secondHintEdge->csCoord,
- firstHintEdge->csCoord ) / 2 );
+ ADD_INT32( secondHintEdge->csCoord,
+ firstHintEdge->csCoord ) / 2 );
CF2_Fixed halfWidth =
- FT_MulFix(
- OVERFLOW_SUB_INT32( secondHintEdge->csCoord,
+ FT_MulFix( SUB_INT32( secondHintEdge->csCoord,
firstHintEdge->csCoord ) / 2,
- hintmap->scale );
+ hintmap->scale );
firstHintEdge->dsCoord = midpoint - halfWidth;
@@ -1106,18 +1101,18 @@
FT_Vector pt; /* hinted point in upright DS */
- pt.x = OVERFLOW_ADD_INT32( FT_MulFix( glyphpath->scaleX, x ),
- FT_MulFix( glyphpath->scaleC, y ) );
+ pt.x = ADD_INT32( FT_MulFix( glyphpath->scaleX, x ),
+ FT_MulFix( glyphpath->scaleC, y ) );
pt.y = cf2_hintmap_map( hintmap, y );
- ppt->x = OVERFLOW_ADD_INT32(
+ ppt->x = ADD_INT32(
FT_MulFix( glyphpath->font->outerTransform.a, pt.x ),
- OVERFLOW_ADD_INT32(
+ ADD_INT32(
FT_MulFix( glyphpath->font->outerTransform.c, pt.y ),
glyphpath->fractionalTranslation.x ) );
- ppt->y = OVERFLOW_ADD_INT32(
+ ppt->y = ADD_INT32(
FT_MulFix( glyphpath->font->outerTransform.b, pt.x ),
- OVERFLOW_ADD_INT32(
+ ADD_INT32(
FT_MulFix( glyphpath->font->outerTransform.d, pt.y ),
glyphpath->fractionalTranslation.y ) );
}
@@ -1169,12 +1164,12 @@
CF2_Fixed denominator, s;
- u.x = CF2_CS_SCALE( OVERFLOW_SUB_INT32( u2->x, u1->x ) );
- u.y = CF2_CS_SCALE( OVERFLOW_SUB_INT32( u2->y, u1->y ) );
- v.x = CF2_CS_SCALE( OVERFLOW_SUB_INT32( v2->x, v1->x ) );
- v.y = CF2_CS_SCALE( OVERFLOW_SUB_INT32( v2->y, v1->y ) );
- w.x = CF2_CS_SCALE( OVERFLOW_SUB_INT32( v1->x, u1->x ) );
- w.y = CF2_CS_SCALE( OVERFLOW_SUB_INT32( v1->y, u1->y ) );
+ u.x = CF2_CS_SCALE( SUB_INT32( u2->x, u1->x ) );
+ u.y = CF2_CS_SCALE( SUB_INT32( u2->y, u1->y ) );
+ v.x = CF2_CS_SCALE( SUB_INT32( v2->x, v1->x ) );
+ v.y = CF2_CS_SCALE( SUB_INT32( v2->y, v1->y ) );
+ w.x = CF2_CS_SCALE( SUB_INT32( v1->x, u1->x ) );
+ w.y = CF2_CS_SCALE( SUB_INT32( v1->y, u1->y ) );
denominator = cf2_perp( u, v );
@@ -1183,12 +1178,10 @@
s = FT_DivFix( cf2_perp( w, v ), denominator );
- intersection->x = OVERFLOW_ADD_INT32(
- u1->x,
- FT_MulFix( s, OVERFLOW_SUB_INT32( u2->x, u1->x ) ) );
- intersection->y = OVERFLOW_ADD_INT32(
- u1->y,
- FT_MulFix( s, OVERFLOW_SUB_INT32( u2->y, u1->y ) ) );
+ intersection->x = ADD_INT32( u1->x,
+ FT_MulFix( s, SUB_INT32( u2->x, u1->x ) ) );
+ intersection->y = ADD_INT32( u1->y,
+ FT_MulFix( s, SUB_INT32( u2->y, u1->y ) ) );
/*
@@ -1200,35 +1193,29 @@
*
*/
- if ( u1->x == u2->x &&
- cf2_fixedAbs( OVERFLOW_SUB_INT32(
- intersection->x,
- u1->x ) ) < glyphpath->snapThreshold )
+ if ( u1->x == u2->x &&
+ cf2_fixedAbs( SUB_INT32( intersection->x,
+ u1->x ) ) < glyphpath->snapThreshold )
intersection->x = u1->x;
- if ( u1->y == u2->y &&
- cf2_fixedAbs( OVERFLOW_SUB_INT32(
- intersection->y,
- u1->y ) ) < glyphpath->snapThreshold )
+ if ( u1->y == u2->y &&
+ cf2_fixedAbs( SUB_INT32( intersection->y,
+ u1->y ) ) < glyphpath->snapThreshold )
intersection->y = u1->y;
- if ( v1->x == v2->x &&
- cf2_fixedAbs( OVERFLOW_SUB_INT32(
- intersection->x,
- v1->x ) ) < glyphpath->snapThreshold )
+ if ( v1->x == v2->x &&
+ cf2_fixedAbs( SUB_INT32( intersection->x,
+ v1->x ) ) < glyphpath->snapThreshold )
intersection->x = v1->x;
- if ( v1->y == v2->y &&
- cf2_fixedAbs( OVERFLOW_SUB_INT32(
- intersection->y,
- v1->y ) ) < glyphpath->snapThreshold )
+ if ( v1->y == v2->y &&
+ cf2_fixedAbs( SUB_INT32( intersection->y,
+ v1->y ) ) < glyphpath->snapThreshold )
intersection->y = v1->y;
/* limit the intersection distance from midpoint of u2 and v1 */
- if ( cf2_fixedAbs( intersection->x -
- OVERFLOW_ADD_INT32( u2->x, v1->x ) / 2 ) >
- glyphpath->miterLimit ||
- cf2_fixedAbs( intersection->y -
- OVERFLOW_ADD_INT32( u2->y, v1->y ) / 2 ) >
- glyphpath->miterLimit )
+ if ( cf2_fixedAbs( intersection->x - ADD_INT32( u2->x, v1->x ) / 2 ) >
+ glyphpath->miterLimit ||
+ cf2_fixedAbs( intersection->y - ADD_INT32( u2->y, v1->y ) / 2 ) >
+ glyphpath->miterLimit )
return FALSE;
return TRUE;
@@ -1476,8 +1463,8 @@
CF2_Fixed* x,
CF2_Fixed* y )
{
- CF2_Fixed dx = OVERFLOW_SUB_INT32( x2, x1 );
- CF2_Fixed dy = OVERFLOW_SUB_INT32( y2, y1 );
+ CF2_Fixed dx = SUB_INT32( x2, x1 );
+ CF2_Fixed dy = SUB_INT32( y2, y1 );
/* note: negative offsets don't work here; negate deltas to change */
@@ -1504,13 +1491,13 @@
{
/* first quadrant, +x +y */
- if ( dx > OVERFLOW_MUL_INT32( 2, dy ) )
+ if ( dx > MUL_INT32( 2, dy ) )
{
/* +x */
*x = 0;
*y = 0;
}
- else if ( dy > OVERFLOW_MUL_INT32( 2, dx ) )
+ else if ( dy > MUL_INT32( 2, dx ) )
{
/* +y */
*x = glyphpath->xOffset;
@@ -1529,13 +1516,13 @@
{
/* fourth quadrant, +x -y */
- if ( dx > OVERFLOW_MUL_INT32( -2, dy ) )
+ if ( dx > MUL_INT32( -2, dy ) )
{
/* +x */
*x = 0;
*y = 0;
}
- else if ( NEG_INT32( dy ) > OVERFLOW_MUL_INT32( 2, dx ) )
+ else if ( NEG_INT32( dy ) > MUL_INT32( 2, dx ) )
{
/* -y */
*x = NEG_INT32( glyphpath->xOffset );
@@ -1557,13 +1544,13 @@
{
/* second quadrant, -x +y */
- if ( NEG_INT32( dx ) > OVERFLOW_MUL_INT32( 2, dy ) )
+ if ( NEG_INT32( dx ) > MUL_INT32( 2, dy ) )
{
/* -x */
*x = 0;
- *y = OVERFLOW_MUL_INT32( 2, glyphpath->yOffset );
+ *y = MUL_INT32( 2, glyphpath->yOffset );
}
- else if ( dy > OVERFLOW_MUL_INT32( -2, dx ) )
+ else if ( dy > MUL_INT32( -2, dx ) )
{
/* +y */
*x = glyphpath->xOffset;
@@ -1582,13 +1569,13 @@
{
/* third quadrant, -x -y */
- if ( NEG_INT32( dx ) > OVERFLOW_MUL_INT32( -2, dy ) )
+ if ( NEG_INT32( dx ) > MUL_INT32( -2, dy ) )
{
/* -x */
*x = 0;
- *y = OVERFLOW_MUL_INT32( 2, glyphpath->yOffset );
+ *y = MUL_INT32( 2, glyphpath->yOffset );
}
- else if ( NEG_INT32( dy ) > OVERFLOW_MUL_INT32( -2, dx ) )
+ else if ( NEG_INT32( dy ) > MUL_INT32( -2, dx ) )
{
/* -y */
*x = NEG_INT32( glyphpath->xOffset );
@@ -1705,10 +1692,10 @@
&yOffset );
/* construct offset points */
- P0.x = OVERFLOW_ADD_INT32( glyphpath->currentCS.x, xOffset );
- P0.y = OVERFLOW_ADD_INT32( glyphpath->currentCS.y, yOffset );
- P1.x = OVERFLOW_ADD_INT32( x, xOffset );
- P1.y = OVERFLOW_ADD_INT32( y, yOffset );
+ P0.x = ADD_INT32( glyphpath->currentCS.x, xOffset );
+ P0.y = ADD_INT32( glyphpath->currentCS.y, yOffset );
+ P1.x = ADD_INT32( x, xOffset );
+ P1.y = ADD_INT32( y, yOffset );
if ( glyphpath->moveIsPending )
{
@@ -1787,15 +1774,15 @@
cf2_getWindingMomentum( x1, y1, x2, y2 );
/* construct offset points */
- P0.x = OVERFLOW_ADD_INT32( glyphpath->currentCS.x, xOffset1 );
- P0.y = OVERFLOW_ADD_INT32( glyphpath->currentCS.y, yOffset1 );
- P1.x = OVERFLOW_ADD_INT32( x1, xOffset1 );
- P1.y = OVERFLOW_ADD_INT32( y1, yOffset1 );
+ P0.x = ADD_INT32( glyphpath->currentCS.x, xOffset1 );
+ P0.y = ADD_INT32( glyphpath->currentCS.y, yOffset1 );
+ P1.x = ADD_INT32( x1, xOffset1 );
+ P1.y = ADD_INT32( y1, yOffset1 );
/* note: preserve angle of final segment by using offset3 at both ends */
- P2.x = OVERFLOW_ADD_INT32( x2, xOffset3 );
- P2.y = OVERFLOW_ADD_INT32( y2, yOffset3 );
- P3.x = OVERFLOW_ADD_INT32( x3, xOffset3 );
- P3.y = OVERFLOW_ADD_INT32( y3, yOffset3 );
+ P2.x = ADD_INT32( x2, xOffset3 );
+ P2.y = ADD_INT32( y2, yOffset3 );
+ P3.x = ADD_INT32( x3, xOffset3 );
+ P3.y = ADD_INT32( y3, yOffset3 );
if ( glyphpath->moveIsPending )
{
--- a/src/cff/cf2intrp.c
+++ b/src/cff/cf2intrp.c
@@ -305,11 +305,11 @@
stemhint.min =
- position = OVERFLOW_ADD_INT32( position,
- cf2_stack_getReal( opStack, i ) );
+ position = ADD_INT32( position,
+ cf2_stack_getReal( opStack, i ) );
stemhint.max =
- position = OVERFLOW_ADD_INT32( position,
- cf2_stack_getReal( opStack, i + 1 ) );
+ position = ADD_INT32( position,
+ cf2_stack_getReal( opStack, i + 1 ) );
stemhint.used = FALSE;
stemhint.maxDS =
@@ -350,9 +350,8 @@
{
vals[i + 2] = vals[i];
if ( readFromStack[i] )
- vals[i + 2] = OVERFLOW_ADD_INT32( vals[i + 2],
- cf2_stack_getReal( opStack,
- idx++ ) );
+ vals[i + 2] = ADD_INT32( vals[i + 2], cf2_stack_getReal( opStack,
+ idx++ ) );
}
if ( isHFlex )
@@ -361,35 +360,33 @@
if ( doConditionalLastRead )
{
FT_Bool lastIsX = (FT_Bool)(
- cf2_fixedAbs( OVERFLOW_SUB_INT32( vals[10],
- *curX ) ) >
- cf2_fixedAbs( OVERFLOW_SUB_INT32( vals[11],
- *curY ) ) );
+ cf2_fixedAbs( SUB_INT32( vals[10], *curX ) ) >
+ cf2_fixedAbs( SUB_INT32( vals[11], *curY ) ) );
CF2_Fixed lastVal = cf2_stack_getReal( opStack, idx );
if ( lastIsX )
{
- vals[12] = OVERFLOW_ADD_INT32( vals[10], lastVal );
+ vals[12] = ADD_INT32( vals[10], lastVal );
vals[13] = *curY;
}
else
{
vals[12] = *curX;
- vals[13] = OVERFLOW_ADD_INT32( vals[11], lastVal );
+ vals[13] = ADD_INT32( vals[11], lastVal );
}
}
else
{
if ( readFromStack[10] )
- vals[12] = OVERFLOW_ADD_INT32( vals[10],
- cf2_stack_getReal( opStack, idx++ ) );
+ vals[12] = ADD_INT32( vals[10],
+ cf2_stack_getReal( opStack, idx++ ) );
else
vals[12] = *curX;
if ( readFromStack[11] )
- vals[13] = OVERFLOW_ADD_INT32( vals[11],
- cf2_stack_getReal( opStack, idx ) );
+ vals[13] = ADD_INT32( vals[11],
+ cf2_stack_getReal( opStack, idx ) );
else
vals[13] = *curY;
}
@@ -435,10 +432,10 @@
for ( j = 1; j < blend->lenBV; j++ )
- sum = OVERFLOW_ADD_INT32(
- sum,
- FT_MulFix( *weight++,
- cf2_stack_getReal( opStack, delta++ ) ) );
+ sum = ADD_INT32( sum,
+ FT_MulFix( *weight++,
+ cf2_stack_getReal( opStack,
+ delta++ ) ) );
/* store blended result */
cf2_stack_setReal( opStack, i + base, sum );
@@ -779,7 +776,7 @@
if ( font->decoder->width_only )
goto exit;
- curY = OVERFLOW_ADD_INT32( curY, cf2_stack_popFixed( opStack ) );
+ curY = ADD_INT32( curY, cf2_stack_popFixed( opStack ) );
cf2_glyphpath_moveTo( &glyphPath, curX, curY );
@@ -795,12 +792,10 @@
for ( idx = 0; idx < count; idx += 2 )
{
- curX = OVERFLOW_ADD_INT32( curX,
- cf2_stack_getReal( opStack,
- idx + 0 ) );
- curY = OVERFLOW_ADD_INT32( curY,
- cf2_stack_getReal( opStack,
- idx + 1 ) );
+ curX = ADD_INT32( curX, cf2_stack_getReal( opStack,
+ idx + 0 ) );
+ curY = ADD_INT32( curY, cf2_stack_getReal( opStack,
+ idx + 1 ) );
cf2_glyphpath_lineTo( &glyphPath, curX, curY );
}
@@ -826,9 +821,9 @@
if ( isX )
- curX = OVERFLOW_ADD_INT32( curX, v );
+ curX = ADD_INT32( curX, v );
else
- curY = OVERFLOW_ADD_INT32( curY, v );
+ curY = ADD_INT32( curY, v );
isX = !isX;
@@ -854,18 +849,12 @@
CF2_Fixed x1, y1, x2, y2, x3, y3;
- x1 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 0 ),
- curX );
- y1 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 1 ),
- curY );
- x2 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 2 ),
- x1 );
- y2 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 3 ),
- y1 );
- x3 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 4 ),
- x2 );
- y3 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 5 ),
- y2 );
+ x1 = ADD_INT32( cf2_stack_getReal( opStack, idx + 0 ), curX );
+ y1 = ADD_INT32( cf2_stack_getReal( opStack, idx + 1 ), curY );
+ x2 = ADD_INT32( cf2_stack_getReal( opStack, idx + 2 ), x1 );
+ y2 = ADD_INT32( cf2_stack_getReal( opStack, idx + 3 ), y1 );
+ x3 = ADD_INT32( cf2_stack_getReal( opStack, idx + 4 ), x2 );
+ y3 = ADD_INT32( cf2_stack_getReal( opStack, idx + 5 ), y2 );
cf2_glyphpath_curveTo( &glyphPath, x1, y1, x2, y2, x3, y3 );
@@ -876,12 +865,10 @@
if ( op1 == cf2_cmdRCURVELINE )
{
- curX = OVERFLOW_ADD_INT32( curX,
- cf2_stack_getReal( opStack,
- idx + 0 ) );
- curY = OVERFLOW_ADD_INT32( curY,
- cf2_stack_getReal( opStack,
- idx + 1 ) );
+ curX = ADD_INT32( curX, cf2_stack_getReal( opStack,
+ idx + 0 ) );
+ curY = ADD_INT32( curY, cf2_stack_getReal( opStack,
+ idx + 1 ) );
cf2_glyphpath_lineTo( &glyphPath, curX, curY );
}
@@ -1176,8 +1163,8 @@
summand1 = cf2_stack_popFixed( opStack );
cf2_stack_pushFixed( opStack,
- OVERFLOW_ADD_INT32( summand1,
- summand2 ) );
+ ADD_INT32( summand1,
+ summand2 ) );
}
continue; /* do not clear the stack */
@@ -1193,8 +1180,7 @@
minuend = cf2_stack_popFixed( opStack );
cf2_stack_pushFixed( opStack,
- OVERFLOW_SUB_INT32( minuend,
- subtrahend ) );
+ SUB_INT32( minuend, subtrahend ) );
}
continue; /* do not clear the stack */
@@ -1461,8 +1447,8 @@
cf2_stack_count( opStack ) == 5 )
{
if ( !haveWidth )
- *width = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, 0 ),
- nominalWidthX );
+ *width = ADD_INT32( cf2_stack_getReal( opStack, 0 ),
+ nominalWidthX );
}
/* width is defined or default after this */
@@ -1610,8 +1596,8 @@
FT_TRACE4(( " rmoveto\n" ));
if ( cf2_stack_count( opStack ) > 2 && !haveWidth )
- *width = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, 0 ),
- nominalWidthX );
+ *width = ADD_INT32( cf2_stack_getReal( opStack, 0 ),
+ nominalWidthX );
/* width is defined or default after this */
haveWidth = TRUE;
@@ -1619,8 +1605,8 @@
if ( font->decoder->width_only )
goto exit;
- curY = OVERFLOW_ADD_INT32( curY, cf2_stack_popFixed( opStack ) );
- curX = OVERFLOW_ADD_INT32( curX, cf2_stack_popFixed( opStack ) );
+ curY = ADD_INT32( curY, cf2_stack_popFixed( opStack ) );
+ curX = ADD_INT32( curX, cf2_stack_popFixed( opStack ) );
cf2_glyphpath_moveTo( &glyphPath, curX, curY );
@@ -1630,8 +1616,8 @@
FT_TRACE4(( " hmoveto\n" ));
if ( cf2_stack_count( opStack ) > 1 && !haveWidth )
- *width = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, 0 ),
- nominalWidthX );
+ *width = ADD_INT32( cf2_stack_getReal( opStack, 0 ),
+ nominalWidthX );
/* width is defined or default after this */
haveWidth = TRUE;
@@ -1639,7 +1625,7 @@
if ( font->decoder->width_only )
goto exit;
- curX = OVERFLOW_ADD_INT32( curX, cf2_stack_popFixed( opStack ) );
+ curX = ADD_INT32( curX, cf2_stack_popFixed( opStack ) );
cf2_glyphpath_moveTo( &glyphPath, curX, curY );
@@ -1655,12 +1641,10 @@
while ( idx + 6 < count )
{
- curX = OVERFLOW_ADD_INT32( curX,
- cf2_stack_getReal( opStack,
- idx + 0 ) );
- curY = OVERFLOW_ADD_INT32( curY,
- cf2_stack_getReal( opStack,
- idx + 1 ) );
+ curX = ADD_INT32( curX, cf2_stack_getReal( opStack,
+ idx + 0 ) );
+ curY = ADD_INT32( curY, cf2_stack_getReal( opStack,
+ idx + 1 ) );
cf2_glyphpath_lineTo( &glyphPath, curX, curY );
idx += 2;
@@ -1671,24 +1655,12 @@
CF2_Fixed x1, y1, x2, y2, x3, y3;
- x1 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack,
- idx + 0 ),
- curX );
- y1 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack,
- idx + 1 ),
- curY );
- x2 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack,
- idx + 2 ),
- x1 );
- y2 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack,
- idx + 3 ),
- y1 );
- x3 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack,
- idx + 4 ),
- x2 );
- y3 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack,
- idx + 5 ),
- y2 );
+ x1 = ADD_INT32( cf2_stack_getReal( opStack, idx + 0 ), curX );
+ y1 = ADD_INT32( cf2_stack_getReal( opStack, idx + 1 ), curY );
+ x2 = ADD_INT32( cf2_stack_getReal( opStack, idx + 2 ), x1 );
+ y2 = ADD_INT32( cf2_stack_getReal( opStack, idx + 3 ), y1 );
+ x3 = ADD_INT32( cf2_stack_getReal( opStack, idx + 4 ), x2 );
+ y3 = ADD_INT32( cf2_stack_getReal( opStack, idx + 5 ), y2 );
cf2_glyphpath_curveTo( &glyphPath, x1, y1, x2, y2, x3, y3 );
@@ -1722,8 +1694,7 @@
if ( ( count - idx ) & 1 )
{
- x1 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx ),
- curX );
+ x1 = ADD_INT32( cf2_stack_getReal( opStack, idx ), curX );
idx++;
}
@@ -1730,15 +1701,11 @@
else
x1 = curX;
- y1 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 0 ),
- curY );
- x2 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 1 ),
- x1 );
- y2 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 2 ),
- y1 );
+ y1 = ADD_INT32( cf2_stack_getReal( opStack, idx + 0 ), curY );
+ x2 = ADD_INT32( cf2_stack_getReal( opStack, idx + 1 ), x1 );
+ y2 = ADD_INT32( cf2_stack_getReal( opStack, idx + 2 ), y1 );
x3 = x2;
- y3 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 3 ),
- y2 );
+ y3 = ADD_INT32( cf2_stack_getReal( opStack, idx + 3 ), y2 );
cf2_glyphpath_curveTo( &glyphPath, x1, y1, x2, y2, x3, y3 );
@@ -1772,8 +1739,7 @@
if ( ( count - idx ) & 1 )
{
- y1 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx ),
- curY );
+ y1 = ADD_INT32( cf2_stack_getReal( opStack, idx ), curY );
idx++;
}
@@ -1780,14 +1746,10 @@
else
y1 = curY;
- x1 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 0 ),
- curX );
- x2 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 1 ),
- x1 );
- y2 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 2 ),
- y1 );
- x3 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 3 ),
- x2 );
+ x1 = ADD_INT32( cf2_stack_getReal( opStack, idx + 0 ), curX );
+ x2 = ADD_INT32( cf2_stack_getReal( opStack, idx + 1 ), x1 );
+ y2 = ADD_INT32( cf2_stack_getReal( opStack, idx + 2 ), y1 );
+ x3 = ADD_INT32( cf2_stack_getReal( opStack, idx + 3 ), x2 );
y3 = y2;
cf2_glyphpath_curveTo( &glyphPath, x1, y1, x2, y2, x3, y3 );
@@ -1826,21 +1788,15 @@
if ( alternate )
{
- x1 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 0 ),
- curX );
+ x1 = ADD_INT32( cf2_stack_getReal( opStack, idx + 0 ), curX );
y1 = curY;
- x2 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 1 ),
- x1 );
- y2 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 2 ),
- y1 );
- y3 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 3 ),
- y2 );
+ x2 = ADD_INT32( cf2_stack_getReal( opStack, idx + 1 ), x1 );
+ y2 = ADD_INT32( cf2_stack_getReal( opStack, idx + 2 ), y1 );
+ y3 = ADD_INT32( cf2_stack_getReal( opStack, idx + 3 ), y2 );
if ( count - idx == 5 )
{
- x3 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack,
- idx + 4 ),
- x2 );
+ x3 = ADD_INT32( cf2_stack_getReal( opStack, idx + 4 ), x2 );
idx++;
}
@@ -1852,20 +1808,14 @@
else
{
x1 = curX;
- y1 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 0 ),
- curY );
- x2 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 1 ),
- x1 );
- y2 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 2 ),
- y1 );
- x3 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack, idx + 3 ),
- x2 );
+ y1 = ADD_INT32( cf2_stack_getReal( opStack, idx + 0 ), curY );
+ x2 = ADD_INT32( cf2_stack_getReal( opStack, idx + 1 ), x1 );
+ y2 = ADD_INT32( cf2_stack_getReal( opStack, idx + 2 ), y1 );
+ x3 = ADD_INT32( cf2_stack_getReal( opStack, idx + 3 ), x2 );
if ( count - idx == 5 )
{
- y3 = OVERFLOW_ADD_INT32( cf2_stack_getReal( opStack,
- idx + 4 ),
- y2 );
+ y3 = ADD_INT32( cf2_stack_getReal( opStack, idx + 4 ), y2 );
idx++;
}
--- a/src/cff/cffgload.c
+++ b/src/cff/cffgload.c
@@ -1451,8 +1451,8 @@
cff_builder_close_contour( builder );
builder->path_begun = 0;
- x = OVERFLOW_ADD_LONG( x, args[-2] );
- y = OVERFLOW_ADD_LONG( y, args[-1] );
+ x = ADD_LONG( x, args[-2] );
+ y = ADD_LONG( y, args[-1] );
args = stack;
break;
@@ -1461,7 +1461,7 @@
cff_builder_close_contour( builder );
builder->path_begun = 0;
- y = OVERFLOW_ADD_LONG( y, args[-1] );
+ y = ADD_LONG( y, args[-1] );
args = stack;
break;
@@ -1470,7 +1470,7 @@
cff_builder_close_contour( builder );
builder->path_begun = 0;
- x = OVERFLOW_ADD_LONG( x, args[-1] );
+ x = ADD_LONG( x, args[-1] );
args = stack;
break;
@@ -1487,8 +1487,8 @@
args -= num_args & ~1;
while ( args < decoder->top )
{
- x = OVERFLOW_ADD_LONG( x, args[0] );
- y = OVERFLOW_ADD_LONG( y, args[1] );
+ x = ADD_LONG( x, args[0] );
+ y = ADD_LONG( y, args[1] );
cff_builder_add_point( builder, x, y, 1 );
args += 2;
}
@@ -1520,9 +1520,9 @@
while ( args < decoder->top )
{
if ( phase )
- x = OVERFLOW_ADD_LONG( x, args[0] );
+ x = ADD_LONG( x, args[0] );
else
- y = OVERFLOW_ADD_LONG( y, args[0] );
+ y = ADD_LONG( y, args[0] );
if ( cff_builder_add_point1( builder, x, y ) )
goto Fail;
@@ -1553,16 +1553,16 @@
args -= nargs;
while ( args < decoder->top )
{
- x = OVERFLOW_ADD_LONG( x, args[0] );
- y = OVERFLOW_ADD_LONG( y, args[1] );
+ x = ADD_LONG( x, args[0] );
+ y = ADD_LONG( y, args[1] );
cff_builder_add_point( builder, x, y, 0 );
- x = OVERFLOW_ADD_LONG( x, args[2] );
- y = OVERFLOW_ADD_LONG( y, args[3] );
+ x = ADD_LONG( x, args[2] );
+ y = ADD_LONG( y, args[3] );
cff_builder_add_point( builder, x, y, 0 );
- x = OVERFLOW_ADD_LONG( x, args[4] );
- y = OVERFLOW_ADD_LONG( y, args[5] );
+ x = ADD_LONG( x, args[4] );
+ y = ADD_LONG( y, args[5] );
cff_builder_add_point( builder, x, y, 1 );
args += 6;
@@ -1593,7 +1593,7 @@
if ( nargs & 1 )
{
- x = OVERFLOW_ADD_LONG( x, args[0] );
+ x = ADD_LONG( x, args[0] );
args++;
nargs--;
}
@@ -1603,14 +1603,14 @@
while ( args < decoder->top )
{
- y = OVERFLOW_ADD_LONG( y, args[0] );
+ y = ADD_LONG( y, args[0] );
cff_builder_add_point( builder, x, y, 0 );
- x = OVERFLOW_ADD_LONG( x, args[1] );
- y = OVERFLOW_ADD_LONG( y, args[2] );
+ x = ADD_LONG( x, args[1] );
+ y = ADD_LONG( y, args[2] );
cff_builder_add_point( builder, x, y, 0 );
- y = OVERFLOW_ADD_LONG( y, args[3] );
+ y = ADD_LONG( y, args[3] );
cff_builder_add_point( builder, x, y, 1 );
args += 4;
@@ -1640,7 +1640,7 @@
args -= nargs;
if ( nargs & 1 )
{
- y = OVERFLOW_ADD_LONG( y, args[0] );
+ y = ADD_LONG( y, args[0] );
args++;
nargs--;
}
@@ -1650,14 +1650,14 @@
while ( args < decoder->top )
{
- x = OVERFLOW_ADD_LONG( x, args[0] );
+ x = ADD_LONG( x, args[0] );
cff_builder_add_point( builder, x, y, 0 );
- x = OVERFLOW_ADD_LONG( x, args[1] );
- y = OVERFLOW_ADD_LONG( y, args[2] );
+ x = ADD_LONG( x, args[1] );
+ y = ADD_LONG( y, args[2] );
cff_builder_add_point( builder, x, y, 0 );
- x = OVERFLOW_ADD_LONG( x, args[3] );
+ x = ADD_LONG( x, args[3] );
cff_builder_add_point( builder, x, y, 1 );
args += 4;
@@ -1698,30 +1698,30 @@
nargs -= 4;
if ( phase )
{
- x = OVERFLOW_ADD_LONG( x, args[0] );
+ x = ADD_LONG( x, args[0] );
cff_builder_add_point( builder, x, y, 0 );
- x = OVERFLOW_ADD_LONG( x, args[1] );
- y = OVERFLOW_ADD_LONG( y, args[2] );
+ x = ADD_LONG( x, args[1] );
+ y = ADD_LONG( y, args[2] );
cff_builder_add_point( builder, x, y, 0 );
- y = OVERFLOW_ADD_LONG( y, args[3] );
+ y = ADD_LONG( y, args[3] );
if ( nargs == 1 )
- x = OVERFLOW_ADD_LONG( x, args[4] );
+ x = ADD_LONG( x, args[4] );
cff_builder_add_point( builder, x, y, 1 );
}
else
{
- y = OVERFLOW_ADD_LONG( y, args[0] );
+ y = ADD_LONG( y, args[0] );
cff_builder_add_point( builder, x, y, 0 );
- x = OVERFLOW_ADD_LONG( x, args[1] );
- y = OVERFLOW_ADD_LONG( y, args[2] );
+ x = ADD_LONG( x, args[1] );
+ y = ADD_LONG( y, args[2] );
cff_builder_add_point( builder, x, y, 0 );
- x = OVERFLOW_ADD_LONG( x, args[3] );
+ x = ADD_LONG( x, args[3] );
if ( nargs == 1 )
- y = OVERFLOW_ADD_LONG( y, args[4] );
+ y = ADD_LONG( y, args[4] );
cff_builder_add_point( builder, x, y, 1 );
}
args += 4;
@@ -1754,8 +1754,8 @@
/* first, add the line segments */
while ( num_lines > 0 )
{
- x = OVERFLOW_ADD_LONG( x, args[0] );
- y = OVERFLOW_ADD_LONG( y, args[1] );
+ x = ADD_LONG( x, args[0] );
+ y = ADD_LONG( y, args[1] );
cff_builder_add_point( builder, x, y, 1 );
args += 2;
@@ -1763,16 +1763,16 @@
}
/* then the curve */
- x = OVERFLOW_ADD_LONG( x, args[0] );
- y = OVERFLOW_ADD_LONG( y, args[1] );
+ x = ADD_LONG( x, args[0] );
+ y = ADD_LONG( y, args[1] );
cff_builder_add_point( builder, x, y, 0 );
- x = OVERFLOW_ADD_LONG( x, args[2] );
- y = OVERFLOW_ADD_LONG( y, args[3] );
+ x = ADD_LONG( x, args[2] );
+ y = ADD_LONG( y, args[3] );
cff_builder_add_point( builder, x, y, 0 );
- x = OVERFLOW_ADD_LONG( x, args[4] );
- y = OVERFLOW_ADD_LONG( y, args[5] );
+ x = ADD_LONG( x, args[4] );
+ y = ADD_LONG( y, args[5] );
cff_builder_add_point( builder, x, y, 1 );
args = stack;
@@ -1803,16 +1803,16 @@
/* first, add the curves */
while ( num_curves > 0 )
{
- x = OVERFLOW_ADD_LONG( x, args[0] );
- y = OVERFLOW_ADD_LONG( y, args[1] );
+ x = ADD_LONG( x, args[0] );
+ y = ADD_LONG( y, args[1] );
cff_builder_add_point( builder, x, y, 0 );
- x = OVERFLOW_ADD_LONG( x, args[2] );
- y = OVERFLOW_ADD_LONG( y, args[3] );
+ x = ADD_LONG( x, args[2] );
+ y = ADD_LONG( y, args[3] );
cff_builder_add_point( builder, x, y, 0 );
- x = OVERFLOW_ADD_LONG( x, args[4] );
- y = OVERFLOW_ADD_LONG( y, args[5] );
+ x = ADD_LONG( x, args[4] );
+ y = ADD_LONG( y, args[5] );
cff_builder_add_point( builder, x, y, 1 );
args += 6;
@@ -1820,8 +1820,8 @@
}
/* then the final line */
- x = OVERFLOW_ADD_LONG( x, args[0] );
- y = OVERFLOW_ADD_LONG( y, args[1] );
+ x = ADD_LONG( x, args[0] );
+ y = ADD_LONG( y, args[1] );
cff_builder_add_point( builder, x, y, 1 );
args = stack;
@@ -1846,32 +1846,32 @@
start_y = y;
/* first control point */
- x = OVERFLOW_ADD_LONG( x, args[0] );
- y = OVERFLOW_ADD_LONG( y, args[1] );
+ x = ADD_LONG( x, args[0] );
+ y = ADD_LONG( y, args[1] );
cff_builder_add_point( builder, x, y, 0 );
/* second control point */
- x = OVERFLOW_ADD_LONG( x, args[2] );
- y = OVERFLOW_ADD_LONG( y, args[3] );
+ x = ADD_LONG( x, args[2] );
+ y = ADD_LONG( y, args[3] );
cff_builder_add_point( builder, x, y, 0 );
/* join point; on curve, with y-value the same as the last */
/* control point's y-value */
- x = OVERFLOW_ADD_LONG( x, args[4] );
+ x = ADD_LONG( x, args[4] );
cff_builder_add_point( builder, x, y, 1 );
/* third control point, with y-value the same as the join */
/* point's y-value */
- x = OVERFLOW_ADD_LONG( x, args[5] );
+ x = ADD_LONG( x, args[5] );
cff_builder_add_point( builder, x, y, 0 );
/* fourth control point */
- x = OVERFLOW_ADD_LONG( x, args[6] );
- y = OVERFLOW_ADD_LONG( y, args[7] );
+ x = ADD_LONG( x, args[6] );
+ y = ADD_LONG( y, args[7] );
cff_builder_add_point( builder, x, y, 0 );
/* ending point, with y-value the same as the start */
- x = OVERFLOW_ADD_LONG( x, args[8] );
+ x = ADD_LONG( x, args[8] );
y = start_y;
cff_builder_add_point( builder, x, y, 1 );
@@ -1895,32 +1895,32 @@
start_y = y;
/* first control point */
- x = OVERFLOW_ADD_LONG( x, args[0] );
+ x = ADD_LONG( x, args[0] );
cff_builder_add_point( builder, x, y, 0 );
/* second control point */
- x = OVERFLOW_ADD_LONG( x, args[1] );
- y = OVERFLOW_ADD_LONG( y, args[2] );
+ x = ADD_LONG( x, args[1] );
+ y = ADD_LONG( y, args[2] );
cff_builder_add_point( builder, x, y, 0 );
/* join point; on curve, with y-value the same as the last */
/* control point's y-value */
- x = OVERFLOW_ADD_LONG( x, args[3] );
+ x = ADD_LONG( x, args[3] );
cff_builder_add_point( builder, x, y, 1 );
/* third control point, with y-value the same as the join */
/* point's y-value */
- x = OVERFLOW_ADD_LONG( x, args[4] );
+ x = ADD_LONG( x, args[4] );
cff_builder_add_point( builder, x, y, 0 );
/* fourth control point */
- x = OVERFLOW_ADD_LONG( x, args[5] );
+ x = ADD_LONG( x, args[5] );
y = start_y;
cff_builder_add_point( builder, x, y, 0 );
/* ending point, with y-value the same as the start point's */
/* y-value -- we don't add this point, though */
- x = OVERFLOW_ADD_LONG( x, args[6] );
+ x = ADD_LONG( x, args[6] );
cff_builder_add_point( builder, x, y, 1 );
args = stack;
@@ -1956,8 +1956,8 @@
/* grab up to the last argument */
for ( count = 5; count > 0; count-- )
{
- dx = OVERFLOW_ADD_LONG( dx, temp[0] );
- dy = OVERFLOW_ADD_LONG( dy, temp[1] );
+ dx = ADD_LONG( dx, temp[0] );
+ dy = ADD_LONG( dy, temp[1] );
temp += 2;
}
@@ -1971,8 +1971,8 @@
for ( count = 5; count > 0; count-- )
{
- x = OVERFLOW_ADD_LONG( x, args[0] );
- y = OVERFLOW_ADD_LONG( y, args[1] );
+ x = ADD_LONG( x, args[0] );
+ y = ADD_LONG( y, args[1] );
cff_builder_add_point( builder, x, y,
(FT_Bool)( count == 3 ) );
args += 2;
@@ -1981,13 +1981,13 @@
/* is last operand an x- or y-delta? */
if ( horizontal )
{
- x = OVERFLOW_ADD_LONG( x, args[0] );
+ x = ADD_LONG( x, args[0] );
y = start_y;
}
else
{
x = start_x;
- y = OVERFLOW_ADD_LONG( y, args[0] );
+ y = ADD_LONG( y, args[0] );
}
cff_builder_add_point( builder, x, y, 1 );
@@ -2009,8 +2009,8 @@
for ( count = 6; count > 0; count-- )
{
- x = OVERFLOW_ADD_LONG( x, args[0] );
- y = OVERFLOW_ADD_LONG( y, args[1] );
+ x = ADD_LONG( x, args[0] );
+ y = ADD_LONG( y, args[1] );
cff_builder_add_point( builder, x, y,
(FT_Bool)( count == 4 || count == 1 ) );
args += 2;
@@ -2100,7 +2100,7 @@
case cff_op_add:
FT_TRACE4(( " add\n" ));
- args[0] = OVERFLOW_ADD_LONG( args[0], args[1] );
+ args[0] = ADD_LONG( args[0], args[1] );
args++;
break;
@@ -2107,7 +2107,7 @@
case cff_op_sub:
FT_TRACE4(( " sub\n" ));
- args[0] = OVERFLOW_SUB_LONG( args[0], args[1] );
+ args[0] = SUB_LONG( args[0], args[1] );
args++;
break;
@@ -2380,12 +2380,12 @@
FT_TRACE4(( " hsbw (invalid op)\n" ));
decoder->glyph_width =
- OVERFLOW_ADD_LONG( decoder->nominal_width, ( args[1] >> 16 ) );
+ ADD_LONG( decoder->nominal_width, ( args[1] >> 16 ) );
decoder->builder.left_bearing.x = args[0];
decoder->builder.left_bearing.y = 0;
- x = OVERFLOW_ADD_LONG( decoder->builder.pos_x, args[0] );
+ x = ADD_LONG( decoder->builder.pos_x, args[0] );
y = decoder->builder.pos_y;
args = stack;
break;
@@ -2398,13 +2398,13 @@
FT_TRACE4(( " sbw (invalid op)\n" ));
decoder->glyph_width =
- OVERFLOW_ADD_LONG( decoder->nominal_width, ( args[2] >> 16 ) );
+ ADD_LONG( decoder->nominal_width, ( args[2] >> 16 ) );
decoder->builder.left_bearing.x = args[0];
decoder->builder.left_bearing.y = args[1];
- x = OVERFLOW_ADD_LONG( decoder->builder.pos_x, args[0] );
- y = OVERFLOW_ADD_LONG( decoder->builder.pos_y, args[1] );
+ x = ADD_LONG( decoder->builder.pos_x, args[0] );
+ y = ADD_LONG( decoder->builder.pos_y, args[1] );
args = stack;
break;
@@ -2415,8 +2415,8 @@
FT_TRACE4(( " setcurrentpoint (invalid op)\n" ));
- x = OVERFLOW_ADD_LONG( decoder->builder.pos_x, args[0] );
- y = OVERFLOW_ADD_LONG( decoder->builder.pos_y, args[1] );
+ x = ADD_LONG( decoder->builder.pos_x, args[0] );
+ y = ADD_LONG( decoder->builder.pos_y, args[1] );
args = stack;
break;
--- a/src/cff/cffload.c
+++ b/src/cff/cffload.c
@@ -1352,7 +1352,7 @@
sum = cff_parse_num( parser, &parser->stack[i + base] ) * 65536;
for ( j = 1; j < blend->lenBV; j++ )
- sum = OVERFLOW_ADD_INT32(
+ sum = ADD_INT32(
sum,
FT_MulFix(
*weight++,
--- a/src/cff/cffparse.c
+++ b/src/cff/cffparse.c
@@ -1610,8 +1610,7 @@
val = 0;
while ( num_args > 0 )
{
- val = OVERFLOW_ADD_LONG( val,
- cff_parse_num( parser, data++ ) );
+ val = ADD_LONG( val, cff_parse_num( parser, data++ ) );
switch ( field->size )
{
case (8 / FT_CHAR_BIT):
--- a/src/psaux/t1decode.c
+++ b/src/psaux/t1decode.c
@@ -864,9 +864,9 @@
for ( mm = 1; mm < blend->num_designs; mm++ )
- tmp = OVERFLOW_ADD_LONG(
- tmp,
- FT_MulFix( *delta++, blend->weight_vector[mm] ) );
+ tmp = ADD_LONG( tmp,
+ FT_MulFix( *delta++,
+ blend->weight_vector[mm] ) );
*values++ = tmp;
}
@@ -906,7 +906,7 @@
if ( arg_cnt != 2 )
goto Unexpected_OtherSubr;
- top[0] = OVERFLOW_ADD_LONG( top[0], top[1] );
+ top[0] = ADD_LONG( top[0], top[1] );
known_othersubr_result_cnt = 1;
break;
@@ -917,7 +917,7 @@
if ( arg_cnt != 2 )
goto Unexpected_OtherSubr;
- top[0] = OVERFLOW_SUB_LONG( top[0], top[1] );
+ top[0] = SUB_LONG( top[0], top[1] );
known_othersubr_result_cnt = 1;
break;
@@ -1149,13 +1149,13 @@
builder->parse_state = T1_Parse_Have_Width;
- builder->left_bearing.x = OVERFLOW_ADD_LONG(
- builder->left_bearing.x, top[0] );
+ builder->left_bearing.x = ADD_LONG( builder->left_bearing.x,
+ top[0] );
builder->advance.x = top[1];
builder->advance.y = 0;
- orig_x = x = OVERFLOW_ADD_LONG( builder->pos_x, top[0] );
+ orig_x = x = ADD_LONG( builder->pos_x, top[0] );
orig_y = y = builder->pos_y;
FT_UNUSED( orig_y );
@@ -1181,16 +1181,16 @@
builder->parse_state = T1_Parse_Have_Width;
- builder->left_bearing.x = OVERFLOW_ADD_LONG(
- builder->left_bearing.x, top[0] );
- builder->left_bearing.y = OVERFLOW_ADD_LONG(
- builder->left_bearing.y, top[1] );
+ builder->left_bearing.x = ADD_LONG( builder->left_bearing.x,
+ top[0] );
+ builder->left_bearing.y = ADD_LONG( builder->left_bearing.y,
+ top[1] );
builder->advance.x = top[2];
builder->advance.y = top[3];
- x = OVERFLOW_ADD_LONG( builder->pos_x, top[0] );
- y = OVERFLOW_ADD_LONG( builder->pos_y, top[1] );
+ x = ADD_LONG( builder->pos_x, top[0] );
+ y = ADD_LONG( builder->pos_y, top[1] );
/* the `metrics_only' indicates that we only want to compute */
/* the glyph's metrics (lsb + advance width), not load the */
@@ -1217,13 +1217,13 @@
if ( FT_SET_ERROR( t1_builder_start_point( builder, x, y ) ) )
goto Fail;
- x = OVERFLOW_ADD_LONG( x, top[0] );
+ x = ADD_LONG( x, top[0] );
goto Add_Line;
case op_hmoveto:
FT_TRACE4(( " hmoveto" ));
- x = OVERFLOW_ADD_LONG( x, top[0] );
+ x = ADD_LONG( x, top[0] );
if ( !decoder->flex_state )
{
@@ -1240,14 +1240,14 @@
FT_SET_ERROR( t1_builder_check_points( builder, 3 ) ) )
goto Fail;
- x = OVERFLOW_ADD_LONG( x, top[0] );
+ x = ADD_LONG( x, top[0] );
t1_builder_add_point( builder, x, y, 0 );
- x = OVERFLOW_ADD_LONG( x, top[1] );
- y = OVERFLOW_ADD_LONG( y, top[2] );
+ x = ADD_LONG( x, top[1] );
+ y = ADD_LONG( y, top[2] );
t1_builder_add_point( builder, x, y, 0 );
- y = OVERFLOW_ADD_LONG( y, top[3] );
+ y = ADD_LONG( y, top[3] );
t1_builder_add_point( builder, x, y, 1 );
break;
@@ -1257,8 +1257,8 @@
if ( FT_SET_ERROR( t1_builder_start_point( builder, x, y ) ) )
goto Fail;
- x = OVERFLOW_ADD_LONG( x, top[0] );
- y = OVERFLOW_ADD_LONG( y, top[1] );
+ x = ADD_LONG( x, top[0] );
+ y = ADD_LONG( y, top[1] );
Add_Line:
if ( FT_SET_ERROR( t1_builder_add_point1( builder, x, y ) ) )
@@ -1268,8 +1268,8 @@
case op_rmoveto:
FT_TRACE4(( " rmoveto" ));
- x = OVERFLOW_ADD_LONG( x, top[0] );
- y = OVERFLOW_ADD_LONG( y, top[1] );
+ x = ADD_LONG( x, top[0] );
+ y = ADD_LONG( y, top[1] );
if ( !decoder->flex_state )
{
@@ -1286,16 +1286,16 @@
FT_SET_ERROR( t1_builder_check_points( builder, 3 ) ) )
goto Fail;
- x = OVERFLOW_ADD_LONG( x, top[0] );
- y = OVERFLOW_ADD_LONG( y, top[1] );
+ x = ADD_LONG( x, top[0] );
+ y = ADD_LONG( y, top[1] );
t1_builder_add_point( builder, x, y, 0 );
- x = OVERFLOW_ADD_LONG( x, top[2] );
- y = OVERFLOW_ADD_LONG( y, top[3] );
+ x = ADD_LONG( x, top[2] );
+ y = ADD_LONG( y, top[3] );
t1_builder_add_point( builder, x, y, 0 );
- x = OVERFLOW_ADD_LONG( x, top[4] );
- y = OVERFLOW_ADD_LONG( y, top[5] );
+ x = ADD_LONG( x, top[4] );
+ y = ADD_LONG( y, top[5] );
t1_builder_add_point( builder, x, y, 1 );
break;
@@ -1306,14 +1306,14 @@
FT_SET_ERROR( t1_builder_check_points( builder, 3 ) ) )
goto Fail;
- y = OVERFLOW_ADD_LONG( y, top[0] );
+ y = ADD_LONG( y, top[0] );
t1_builder_add_point( builder, x, y, 0 );
- x = OVERFLOW_ADD_LONG( x, top[1] );
- y = OVERFLOW_ADD_LONG( y, top[2] );
+ x = ADD_LONG( x, top[1] );
+ y = ADD_LONG( y, top[2] );
t1_builder_add_point( builder, x, y, 0 );
- x = OVERFLOW_ADD_LONG( x, top[3] );
+ x = ADD_LONG( x, top[3] );
t1_builder_add_point( builder, x, y, 1 );
break;
@@ -1323,13 +1323,13 @@
if ( FT_SET_ERROR( t1_builder_start_point( builder, x, y ) ) )
goto Fail;
- y = OVERFLOW_ADD_LONG( y, top[0] );
+ y = ADD_LONG( y, top[0] );
goto Add_Line;
case op_vmoveto:
FT_TRACE4(( " vmoveto" ));
- y = OVERFLOW_ADD_LONG( y, top[0] );
+ y = ADD_LONG( y, top[0] );
if ( !decoder->flex_state )
{
@@ -1487,7 +1487,7 @@
/* record vertical hint */
if ( hinter )
{
- top[0] = OVERFLOW_ADD_LONG( top[0], orig_x );
+ top[0] = ADD_LONG( top[0], orig_x );
hinter->stem( hinter->hints, 0, top );
}
break;
@@ -1501,9 +1501,9 @@
FT_Pos dx = orig_x;
- top[0] = OVERFLOW_ADD_LONG( top[0], dx );
- top[2] = OVERFLOW_ADD_LONG( top[2], dx );
- top[4] = OVERFLOW_ADD_LONG( top[4], dx );
+ top[0] = ADD_LONG( top[0], dx );
+ top[2] = ADD_LONG( top[2], dx );
+ top[4] = ADD_LONG( top[4], dx );
hinter->stem3( hinter->hints, 0, top );
}
break;
--- a/src/smooth/ftgrays.c
+++ b/src/smooth/ftgrays.c
@@ -141,11 +141,11 @@
#define FT_INT_MAX INT_MAX
#define FT_ULONG_MAX ULONG_MAX
-#define OVERFLOW_ADD_LONG( a, b ) \
+#define ADD_LONG( a, b ) \
(long)( (unsigned long)(a) + (unsigned long)(b) )
-#define OVERFLOW_SUB_LONG( a, b ) \
+#define SUB_LONG( a, b ) \
(long)( (unsigned long)(a) - (unsigned long)(b) )
-#define OVERFLOW_MUL_LONG( a, b ) \
+#define MUL_LONG( a, b ) \
(long)( (unsigned long)(a) * (unsigned long)(b) )
#define NEG_LONG( a ) \
(long)( -(unsigned long)(a) )
@@ -1146,8 +1146,7 @@
/* s is L * the perpendicular distance from P1 to the line P0-P3. */
dx1 = arc[1].x - arc[0].x;
dy1 = arc[1].y - arc[0].y;
- s = FT_ABS( OVERFLOW_SUB_LONG( OVERFLOW_MUL_LONG( dy, dx1 ),
- OVERFLOW_MUL_LONG( dx, dy1 ) ) );
+ s = FT_ABS( SUB_LONG( MUL_LONG( dy, dx1 ), MUL_LONG( dx, dy1 ) ) );
if ( s > s_limit )
goto Split;
@@ -1155,8 +1154,7 @@
/* s is L * the perpendicular distance from P2 to the line P0-P3. */
dx2 = arc[2].x - arc[0].x;
dy2 = arc[2].y - arc[0].y;
- s = FT_ABS( OVERFLOW_SUB_LONG( OVERFLOW_MUL_LONG( dy, dx2 ),
- OVERFLOW_MUL_LONG( dx, dy2 ) ) );
+ s = FT_ABS( SUB_LONG( MUL_LONG( dy, dx2 ), MUL_LONG( dx, dy2 ) ) );
if ( s > s_limit )
goto Split;
--- a/src/truetype/ttgload.c
+++ b/src/truetype/ttgload.c
@@ -2100,8 +2100,8 @@
}
/* set glyph dimensions */
- glyph->metrics.width = OVERFLOW_SUB_LONG( bbox.xMax, bbox.xMin );
- glyph->metrics.height = OVERFLOW_SUB_LONG( bbox.yMax, bbox.yMin );
+ glyph->metrics.width = SUB_LONG( bbox.xMax, bbox.xMin );
+ glyph->metrics.height = SUB_LONG( bbox.yMax, bbox.yMin );
/* Now take care of vertical metrics. In the case where there is */
/* no vertical information within the font (relatively common), */
@@ -2137,8 +2137,8 @@
/* table in the font. Otherwise, we use the */
/* values defined in the horizontal header. */
- height = (FT_Short)FT_DivFix( OVERFLOW_SUB_LONG( bbox.yMax,
- bbox.yMin ),
+ height = (FT_Short)FT_DivFix( SUB_LONG( bbox.yMax,
+ bbox.yMin ),
y_scale );
if ( face->os2.version != 0xFFFFU )
advance = (FT_Pos)( face->os2.sTypoAscender -
--- a/src/truetype/ttinterp.c
+++ b/src/truetype/ttinterp.c
@@ -65,15 +65,15 @@
TT_INTERPRETER_VERSION_40 )
#endif
-#define PROJECT( v1, v2 ) \
- exc->func_project( exc, \
- OVERFLOW_SUB_LONG( (v1)->x, (v2)->x ), \
- OVERFLOW_SUB_LONG( (v1)->y, (v2)->y ) )
+#define PROJECT( v1, v2 ) \
+ exc->func_project( exc, \
+ SUB_LONG( (v1)->x, (v2)->x ), \
+ SUB_LONG( (v1)->y, (v2)->y ) )
-#define DUALPROJ( v1, v2 ) \
- exc->func_dualproj( exc, \
- OVERFLOW_SUB_LONG( (v1)->x, (v2)->x ), \
- OVERFLOW_SUB_LONG( (v1)->y, (v2)->y ) )
+#define DUALPROJ( v1, v2 ) \
+ exc->func_dualproj( exc, \
+ SUB_LONG( (v1)->x, (v2)->x ), \
+ SUB_LONG( (v1)->y, (v2)->y ) )
#define FAST_PROJECT( v ) \
exc->func_project( exc, (v)->x, (v)->y )
@@ -1680,9 +1680,10 @@
if ( SUBPIXEL_HINTING_INFINALITY &&
( !exc->ignore_x_mode ||
( exc->sph_tweak_flags & SPH_TWEAK_ALLOW_X_DMOVE ) ) )
- zone->cur[point].x = OVERFLOW_ADD_LONG(
- zone->cur[point].x,
- FT_MulDiv( distance, v, exc->F_dot_P ) );
+ zone->cur[point].x = ADD_LONG( zone->cur[point].x,
+ FT_MulDiv( distance,
+ v,
+ exc->F_dot_P ) );
else
#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
@@ -1691,16 +1692,18 @@
/* diagonal moves, but only post-IUP. DejaVu tries to adjust */
/* diagonal stems like on `Z' and `z' post-IUP. */
if ( SUBPIXEL_HINTING_MINIMAL && !exc->backward_compatibility )
- zone->cur[point].x = OVERFLOW_ADD_LONG(
- zone->cur[point].x,
- FT_MulDiv( distance, v, exc->F_dot_P ) );
+ zone->cur[point].x = ADD_LONG( zone->cur[point].x,
+ FT_MulDiv( distance,
+ v,
+ exc->F_dot_P ) );
else
#endif
if ( NO_SUBPIXEL_HINTING )
- zone->cur[point].x = OVERFLOW_ADD_LONG(
- zone->cur[point].x,
- FT_MulDiv( distance, v, exc->F_dot_P ) );
+ zone->cur[point].x = ADD_LONG( zone->cur[point].x,
+ FT_MulDiv( distance,
+ v,
+ exc->F_dot_P ) );
zone->tags[point] |= FT_CURVE_TAG_TOUCH_X;
}
@@ -1715,9 +1718,10 @@
exc->iupx_called &&
exc->iupy_called ) )
#endif
- zone->cur[point].y = OVERFLOW_ADD_LONG(
- zone->cur[point].y,
- FT_MulDiv( distance, v, exc->F_dot_P ) );
+ zone->cur[point].y = ADD_LONG( zone->cur[point].y,
+ FT_MulDiv( distance,
+ v,
+ exc->F_dot_P ) );
zone->tags[point] |= FT_CURVE_TAG_TOUCH_Y;
}
@@ -1753,16 +1757,18 @@
v = exc->GS.freeVector.x;
if ( v != 0 )
- zone->org[point].x = OVERFLOW_ADD_LONG(
- zone->org[point].x,
- FT_MulDiv( distance, v, exc->F_dot_P ) );
+ zone->org[point].x = ADD_LONG( zone->org[point].x,
+ FT_MulDiv( distance,
+ v,
+ exc->F_dot_P ) );
v = exc->GS.freeVector.y;
if ( v != 0 )
- zone->org[point].y = OVERFLOW_ADD_LONG(
- zone->org[point].y,
- FT_MulDiv( distance, v, exc->F_dot_P ) );
+ zone->org[point].y = ADD_LONG( zone->org[point].y,
+ FT_MulDiv( distance,
+ v,
+ exc->F_dot_P ) );
}
@@ -1785,18 +1791,18 @@
{
#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
if ( SUBPIXEL_HINTING_INFINALITY && !exc->ignore_x_mode )
- zone->cur[point].x = OVERFLOW_ADD_LONG( zone->cur[point].x, distance );
+ zone->cur[point].x = ADD_LONG( zone->cur[point].x, distance );
else
#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
if ( SUBPIXEL_HINTING_MINIMAL && !exc->backward_compatibility )
- zone->cur[point].x = OVERFLOW_ADD_LONG( zone->cur[point].x, distance );
+ zone->cur[point].x = ADD_LONG( zone->cur[point].x, distance );
else
#endif
if ( NO_SUBPIXEL_HINTING )
- zone->cur[point].x = OVERFLOW_ADD_LONG( zone->cur[point].x, distance );
+ zone->cur[point].x = ADD_LONG( zone->cur[point].x, distance );
zone->tags[point] |= FT_CURVE_TAG_TOUCH_X;
}
@@ -1815,7 +1821,7 @@
exc->backward_compatibility &&
exc->iupx_called && exc->iupy_called ) )
#endif
- zone->cur[point].y = OVERFLOW_ADD_LONG( zone->cur[point].y, distance );
+ zone->cur[point].y = ADD_LONG( zone->cur[point].y, distance );
zone->tags[point] |= FT_CURVE_TAG_TOUCH_Y;
}
@@ -1839,7 +1845,7 @@
{
FT_UNUSED( exc );
- zone->org[point].x = OVERFLOW_ADD_LONG( zone->org[point].x, distance );
+ zone->org[point].x = ADD_LONG( zone->org[point].x, distance );
}
@@ -1851,7 +1857,7 @@
{
FT_UNUSED( exc );
- zone->org[point].y = OVERFLOW_ADD_LONG( zone->org[point].y, distance );
+ zone->org[point].y = ADD_LONG( zone->org[point].y, distance );
}
@@ -2842,7 +2848,7 @@
static void
Ins_ADD( FT_Long* args )
{
- args[0] = OVERFLOW_ADD_LONG( args[0], args[1] );
+ args[0] = ADD_LONG( args[0], args[1] );
}
@@ -2855,7 +2861,7 @@
static void
Ins_SUB( FT_Long* args )
{
- args[0] = OVERFLOW_SUB_LONG( args[0], args[1] );
+ args[0] = SUB_LONG( args[0], args[1] );
}
@@ -5408,8 +5414,7 @@
if ( !( SUBPIXEL_HINTING_MINIMAL &&
exc->backward_compatibility ) )
#endif
- exc->zp2.cur[point].x = OVERFLOW_ADD_LONG( exc->zp2.cur[point].x,
- dx );
+ exc->zp2.cur[point].x = ADD_LONG( exc->zp2.cur[point].x, dx );
if ( touch )
exc->zp2.tags[point] |= FT_CURVE_TAG_TOUCH_X;
@@ -5423,8 +5428,7 @@
exc->iupx_called &&
exc->iupy_called ) )
#endif
- exc->zp2.cur[point].y = OVERFLOW_ADD_LONG( exc->zp2.cur[point].y,
- dy );
+ exc->zp2.cur[point].y = ADD_LONG( exc->zp2.cur[point].y, dy );
if ( touch )
exc->zp2.tags[point] |= FT_CURVE_TAG_TOUCH_Y;
@@ -5799,11 +5803,10 @@
#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
/* subpixel hinting - make MSIRP respect CVT cut-in; */
- if ( SUBPIXEL_HINTING_INFINALITY &&
- exc->ignore_x_mode &&
- exc->GS.freeVector.x != 0 &&
- FT_ABS( OVERFLOW_SUB_LONG( distance,
- args[1] ) ) >= control_value_cutin )
+ if ( SUBPIXEL_HINTING_INFINALITY &&
+ exc->ignore_x_mode &&
+ exc->GS.freeVector.x != 0 &&
+ FT_ABS( SUB_LONG( distance, args[1] ) ) >= control_value_cutin )
distance = args[1];
#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
@@ -5810,7 +5813,7 @@
exc->func_move( exc,
&exc->zp1,
point,
- OVERFLOW_SUB_LONG( args[1], distance ) );
+ SUB_LONG( args[1], distance ) );
exc->GS.rp1 = exc->GS.rp0;
exc->GS.rp2 = point;
@@ -6459,19 +6462,19 @@
/* Cramer's rule */
- dbx = OVERFLOW_SUB_LONG( exc->zp0.cur[b1].x, exc->zp0.cur[b0].x );
- dby = OVERFLOW_SUB_LONG( exc->zp0.cur[b1].y, exc->zp0.cur[b0].y );
+ dbx = SUB_LONG( exc->zp0.cur[b1].x, exc->zp0.cur[b0].x );
+ dby = SUB_LONG( exc->zp0.cur[b1].y, exc->zp0.cur[b0].y );
- dax = OVERFLOW_SUB_LONG( exc->zp1.cur[a1].x, exc->zp1.cur[a0].x );
- day = OVERFLOW_SUB_LONG( exc->zp1.cur[a1].y, exc->zp1.cur[a0].y );
+ dax = SUB_LONG( exc->zp1.cur[a1].x, exc->zp1.cur[a0].x );
+ day = SUB_LONG( exc->zp1.cur[a1].y, exc->zp1.cur[a0].y );
- dx = OVERFLOW_SUB_LONG( exc->zp0.cur[b0].x, exc->zp1.cur[a0].x );
- dy = OVERFLOW_SUB_LONG( exc->zp0.cur[b0].y, exc->zp1.cur[a0].y );
+ dx = SUB_LONG( exc->zp0.cur[b0].x, exc->zp1.cur[a0].x );
+ dy = SUB_LONG( exc->zp0.cur[b0].y, exc->zp1.cur[a0].y );
- discriminant = OVERFLOW_ADD_LONG( FT_MulDiv( dax, -dby, 0x40 ),
- FT_MulDiv( day, dbx, 0x40 ) );
- dotproduct = OVERFLOW_ADD_LONG( FT_MulDiv( dax, dbx, 0x40 ),
- FT_MulDiv( day, dby, 0x40 ) );
+ discriminant = ADD_LONG( FT_MulDiv( dax, -dby, 0x40 ),
+ FT_MulDiv( day, dbx, 0x40 ) );
+ dotproduct = ADD_LONG( FT_MulDiv( dax, dbx, 0x40 ),
+ FT_MulDiv( day, dby, 0x40 ) );
/* The discriminant above is actually a cross product of vectors */
/* da and db. Together with the dot product, they can be used as */
@@ -6481,18 +6484,17 @@
/* discriminant = |da||db|sin(angle) . */
/* We use these equations to reject grazing intersections by */
/* thresholding abs(tan(angle)) at 1/19, corresponding to 3 degrees. */
- if ( OVERFLOW_MUL_LONG( 19, FT_ABS( discriminant ) ) >
- FT_ABS( dotproduct ) )
+ if ( MUL_LONG( 19, FT_ABS( discriminant ) ) > FT_ABS( dotproduct ) )
{
- val = OVERFLOW_ADD_LONG( FT_MulDiv( dx, -dby, 0x40 ),
- FT_MulDiv( dy, dbx, 0x40 ) );
+ val = ADD_LONG( FT_MulDiv( dx, -dby, 0x40 ),
+ FT_MulDiv( dy, dbx, 0x40 ) );
R.x = FT_MulDiv( val, dax, discriminant );
R.y = FT_MulDiv( val, day, discriminant );
/* XXX: Block in backward_compatibility and/or post-IUP? */
- exc->zp2.cur[point].x = OVERFLOW_ADD_LONG( exc->zp1.cur[a0].x, R.x );
- exc->zp2.cur[point].y = OVERFLOW_ADD_LONG( exc->zp1.cur[a0].y, R.y );
+ exc->zp2.cur[point].x = ADD_LONG( exc->zp1.cur[a0].x, R.x );
+ exc->zp2.cur[point].y = ADD_LONG( exc->zp1.cur[a0].y, R.y );
}
else
{
@@ -6500,15 +6502,11 @@
/* XXX: Block in backward_compatibility and/or post-IUP? */
exc->zp2.cur[point].x =
- OVERFLOW_ADD_LONG( OVERFLOW_ADD_LONG( exc->zp1.cur[a0].x,
- exc->zp1.cur[a1].x ),
- OVERFLOW_ADD_LONG( exc->zp0.cur[b0].x,
- exc->zp0.cur[b1].x ) ) / 4;
+ ADD_LONG( ADD_LONG( exc->zp1.cur[a0].x, exc->zp1.cur[a1].x ),
+ ADD_LONG( exc->zp0.cur[b0].x, exc->zp0.cur[b1].x ) ) / 4;
exc->zp2.cur[point].y =
- OVERFLOW_ADD_LONG( OVERFLOW_ADD_LONG( exc->zp1.cur[a0].y,
- exc->zp1.cur[a1].y ),
- OVERFLOW_ADD_LONG( exc->zp0.cur[b0].y,
- exc->zp0.cur[b1].y ) ) / 4;
+ ADD_LONG( ADD_LONG( exc->zp1.cur[a0].y, exc->zp1.cur[a1].y ),
+ ADD_LONG( exc->zp0.cur[b0].y, exc->zp0.cur[b1].y ) ) / 4;
}
exc->zp2.tags[point] |= FT_CURVE_TAG_TOUCH_BOTH;