[cff] Trace charstring nesting levels.
* src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdCALLGSUBR, cf2_cmdCALLSUBR, cf2_cmdRETURN>: Implement it. * src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_callsubr, cff_op_callgsubr, cff_op_return>: Ditto.
This commit is contained in:
parent
dac5644cea
commit
8ce3026304
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
||||||
|
2015-03-27 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
|
[cff] Trace charstring nesting levels.
|
||||||
|
|
||||||
|
* src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdCALLGSUBR,
|
||||||
|
cf2_cmdCALLSUBR, cf2_cmdRETURN>: Implement it.
|
||||||
|
|
||||||
|
* src/cff/cffgload.c (cff_decoder_parse_charstrings)
|
||||||
|
<cff_op_callsubr, cff_op_callgsubr, cff_op_return>: Ditto.
|
||||||
|
|
||||||
2015-03-21 Alexei Podtelezhnikov <apodtele@gmail.com>
|
2015-03-21 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||||||
|
|
||||||
[base] Optimize `FT_Angle_Diff'.
|
[base] Optimize `FT_Angle_Diff'.
|
||||||
|
|
|
@ -771,8 +771,9 @@
|
||||||
switch ( op1 )
|
switch ( op1 )
|
||||||
{
|
{
|
||||||
case cf2_cmdCALLGSUBR:
|
case cf2_cmdCALLGSUBR:
|
||||||
FT_TRACE4(( "(%d)\n",
|
FT_TRACE4(( " (idx %d, entering level %d)\n",
|
||||||
subrIndex + (CF2_UInt)decoder->globals_bias ));
|
subrIndex + (CF2_UInt)decoder->globals_bias,
|
||||||
|
charstringIndex + 1 ));
|
||||||
|
|
||||||
if ( cf2_initGlobalRegionBuffer( decoder,
|
if ( cf2_initGlobalRegionBuffer( decoder,
|
||||||
subrIndex,
|
subrIndex,
|
||||||
|
@ -785,8 +786,9 @@
|
||||||
|
|
||||||
default:
|
default:
|
||||||
/* cf2_cmdCALLSUBR */
|
/* cf2_cmdCALLSUBR */
|
||||||
FT_TRACE4(( "(%d)\n",
|
FT_TRACE4(( " (idx %d, entering level %d)\n",
|
||||||
subrIndex + (CF2_UInt)decoder->locals_bias ));
|
subrIndex + (CF2_UInt)decoder->locals_bias,
|
||||||
|
charstringIndex + 1 ));
|
||||||
|
|
||||||
if ( cf2_initLocalRegionBuffer( decoder,
|
if ( cf2_initLocalRegionBuffer( decoder,
|
||||||
subrIndex,
|
subrIndex,
|
||||||
|
@ -802,7 +804,7 @@
|
||||||
continue; /* do not clear the stack */
|
continue; /* do not clear the stack */
|
||||||
|
|
||||||
case cf2_cmdRETURN:
|
case cf2_cmdRETURN:
|
||||||
FT_TRACE4(( " return\n" ));
|
FT_TRACE4(( " return (leaving level %d)\n", charstringIndex ));
|
||||||
|
|
||||||
if ( charstringIndex < 1 )
|
if ( charstringIndex < 1 )
|
||||||
{
|
{
|
||||||
|
|
|
@ -2389,7 +2389,9 @@
|
||||||
decoder->locals_bias );
|
decoder->locals_bias );
|
||||||
|
|
||||||
|
|
||||||
FT_TRACE4(( " callsubr(%d)\n", idx ));
|
FT_TRACE4(( " callsubr (idx %d, entering level %d)\n",
|
||||||
|
idx,
|
||||||
|
zone - decoder->zones + 1 ));
|
||||||
|
|
||||||
if ( idx >= decoder->num_locals )
|
if ( idx >= decoder->num_locals )
|
||||||
{
|
{
|
||||||
|
@ -2431,7 +2433,9 @@
|
||||||
decoder->globals_bias );
|
decoder->globals_bias );
|
||||||
|
|
||||||
|
|
||||||
FT_TRACE4(( " callgsubr(%d)\n", idx ));
|
FT_TRACE4(( " callgsubr (idx %d, entering level %d)\n",
|
||||||
|
idx,
|
||||||
|
zone - decoder->zones + 1 ));
|
||||||
|
|
||||||
if ( idx >= decoder->num_globals )
|
if ( idx >= decoder->num_globals )
|
||||||
{
|
{
|
||||||
|
@ -2468,7 +2472,8 @@
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case cff_op_return:
|
case cff_op_return:
|
||||||
FT_TRACE4(( " return\n" ));
|
FT_TRACE4(( " return (leaving level %d)\n",
|
||||||
|
decoder->zone - decoder->zones ));
|
||||||
|
|
||||||
if ( decoder->zone <= decoder->zones )
|
if ( decoder->zone <= decoder->zones )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue