Index: core/src/fxge/fx_freetype/fxft2.5.01/src/cff/cf2intrp.c |
diff --git a/core/src/fxge/fx_freetype/fxft2.5.01/src/cff/cf2intrp.c b/core/src/fxge/fx_freetype/fxft2.5.01/src/cff/cf2intrp.c |
index 12f5dd79e778c4edc774f010d7a7228959fda0c4..fc111000126648594a3cd760424054ed2496b0d3 100644 |
--- a/core/src/fxge/fx_freetype/fxft2.5.01/src/cff/cf2intrp.c |
+++ b/core/src/fxge/fx_freetype/fxft2.5.01/src/cff/cf2intrp.c |
@@ -464,9 +464,6 @@ |
CF2_HintMaskRec hintMask; |
CF2_GlyphPathRec glyphPath; |
- int refCount = 0; |
- |
- |
/* initialize the remaining objects */ |
cf2_arrstack_init( &subrStack, |
memory, |
@@ -551,7 +548,7 @@ |
goto exit; |
/* main interpreter loop */ |
- while ( refCount++ < 10240 ) |
+ while ( 1 ) |
{ |
if ( cf2_buf_isEnd( charstring ) ) |
{ |
@@ -646,6 +643,7 @@ |
curY += cf2_stack_popFixed( opStack ); |
cf2_glyphpath_moveTo( &glyphPath, curX, curY ); |
+ if (glyphPath.callbacks && glyphPath.callbacks->error && *glyphPath.callbacks->error) goto exit; |
break; |
@@ -663,6 +661,7 @@ |
curY += cf2_stack_getReal( opStack, index + 1 ); |
cf2_glyphpath_lineTo( &glyphPath, curX, curY ); |
+ if (glyphPath.callbacks && glyphPath.callbacks->error && *glyphPath.callbacks->error) goto exit; |
} |
cf2_stack_clear( opStack ); |
@@ -693,6 +692,7 @@ |
isX = !isX; |
cf2_glyphpath_lineTo( &glyphPath, curX, curY ); |
+ if (glyphPath.callbacks && glyphPath.callbacks->error && *glyphPath.callbacks->error) goto exit; |
} |
cf2_stack_clear( opStack ); |
@@ -720,6 +720,7 @@ |
cf2_glyphpath_curveTo( &glyphPath, x1, y1, x2, y2, x3, y3 ); |
+ if (glyphPath.callbacks && glyphPath.callbacks->error && *glyphPath.callbacks->error) goto exit; |
curX = x3; |
curY = y3; |
@@ -732,6 +733,7 @@ |
curY += cf2_stack_getReal( opStack, index + 1 ); |
cf2_glyphpath_lineTo( &glyphPath, curX, curY ); |
+ if (glyphPath.callbacks && glyphPath.callbacks->error && *glyphPath.callbacks->error) goto exit; |
} |
cf2_stack_clear( opStack ); |
@@ -1225,6 +1227,7 @@ |
curX += cf2_stack_popFixed( opStack ); |
cf2_glyphpath_moveTo( &glyphPath, curX, curY ); |
+ if (glyphPath.callbacks && glyphPath.callbacks->error && *glyphPath.callbacks->error) goto exit; |
break; |
@@ -1243,6 +1246,7 @@ |
curX += cf2_stack_popFixed( opStack ); |
cf2_glyphpath_moveTo( &glyphPath, curX, curY ); |
+ if (glyphPath.callbacks && glyphPath.callbacks->error && *glyphPath.callbacks->error) goto exit; |
break; |
@@ -1260,6 +1264,7 @@ |
curY += cf2_stack_getReal( opStack, index + 1 ); |
cf2_glyphpath_lineTo( &glyphPath, curX, curY ); |
+ if (glyphPath.callbacks && glyphPath.callbacks->error && *glyphPath.callbacks->error) goto exit; |
index += 2; |
} |
@@ -1274,6 +1279,7 @@ |
cf2_glyphpath_curveTo( &glyphPath, x1, y1, x2, y2, x3, y3 ); |
+ if (glyphPath.callbacks && glyphPath.callbacks->error && *glyphPath.callbacks->error) goto exit; |
curX = x3; |
curY = y3; |
@@ -1313,6 +1319,7 @@ |
y3 = cf2_stack_getReal( opStack, index + 3 ) + y2; |
cf2_glyphpath_curveTo( &glyphPath, x1, y1, x2, y2, x3, y3 ); |
+ if (glyphPath.callbacks && glyphPath.callbacks->error && *glyphPath.callbacks->error) goto exit; |
curX = x3; |
curY = y3; |
@@ -1352,6 +1359,7 @@ |
y3 = y2; |
cf2_glyphpath_curveTo( &glyphPath, x1, y1, x2, y2, x3, y3 ); |
+ if (glyphPath.callbacks && glyphPath.callbacks->error && *glyphPath.callbacks->error) goto exit; |
curX = x3; |
curY = y3; |
@@ -1418,6 +1426,7 @@ |
} |
cf2_glyphpath_curveTo( &glyphPath, x1, y1, x2, y2, x3, y3 ); |
+ if (glyphPath.callbacks && glyphPath.callbacks->error && *glyphPath.callbacks->error) goto exit; |
curX = x3; |
curY = y3; |