ref: c00b05f2028a91bf41fe7f33c3254ecad81a5d58
parent: 2bf03eb7296dc7ebb97b24fe3957a2e33c9672df
author: Werner Lemberg <[email protected]>
date: Fri Feb 20 15:42:55 EST 2015
[cff] Thinkos in bias handling. Only the final result is always positive. Bug introduced three commits earlier. * src/cff/cffgload.c, src/cff/cffgload.h: Apply.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2015-02-20 Werner Lemberg <[email protected]>
+ [cff] Thinkos in bias handling.
+
+ Only the final result is always positive.
+
+ Bug introduced three commits earlier.
+
+ * src/cff/cffgload.c, src/cff/cffgload.h: Apply.
+
+2015-02-20 Werner Lemberg <[email protected]>
+
[cid] Fix signedness issues and emit some better error codes.
* src/cid/cidgload.c, src/cid/cidload.h, src/cid/cidobjs.c,
--- a/src/cff/cffgload.c
+++ b/src/cff/cffgload.c
@@ -337,7 +337,7 @@
/* */
/* <Return> */
/* The bias value. */
- static FT_UInt
+ static FT_Int
cff_compute_bias( FT_Int in_charstring_type,
FT_UInt num_subrs )
{
@@ -2385,7 +2385,8 @@
case cff_op_callsubr:
{
- FT_UInt idx = ( (FT_UInt)args[0] >> 16 ) + decoder->locals_bias;
+ FT_UInt idx = (FT_UInt)( ( args[0] >> 16 ) +
+ decoder->locals_bias );
FT_TRACE4(( " callsubr(%d)\n", idx ));
@@ -2426,7 +2427,8 @@
case cff_op_callgsubr:
{
- FT_UInt idx = ( (FT_UInt)args[0] >> 16 ) + decoder->globals_bias;
+ FT_UInt idx = (FT_UInt)( ( args[0] >> 16 ) +
+ decoder->globals_bias );
FT_TRACE4(( " callgsubr(%d)\n", idx ));
--- a/src/cff/cffgload.h
+++ b/src/cff/cffgload.h
@@ -178,8 +178,8 @@
FT_UInt num_locals;
FT_UInt num_globals;
- FT_UInt locals_bias;
- FT_UInt globals_bias;
+ FT_Int locals_bias;
+ FT_Int globals_bias;
FT_Byte** locals;
FT_Byte** globals;