freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freetype2] ewaldhew-wip 00f2791 33/52: [callsubr] fix after merging dec


From: Hew Yih Shiuan Ewald
Subject: [freetype2] ewaldhew-wip 00f2791 33/52: [callsubr] fix after merging decoders
Date: Mon, 10 Jul 2017 05:10:18 -0400 (EDT)

branch: ewaldhew-wip
commit 00f27916a6c2783ea5cf0045514112db8c34834c
Author: Ewald Hew <address@hidden>
Commit: Ewald Hew <address@hidden>

    [callsubr] fix after merging decoders
---
 src/psaux/psft.c | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/src/psaux/psft.c b/src/psaux/psft.c
index 5f66255..1a5deca 100644
--- a/src/psaux/psft.c
+++ b/src/psaux/psft.c
@@ -715,37 +715,36 @@
 
     FT_ASSERT( decoder->locals );
 
-    if ( decoder->font->isT1 /* TODO(ewaldhew): actually have this */)
+    buf->start = decoder->locals[idx];
+
+    if ( decoder->builder.is_t1 )
     {
       /* The Type 1 driver stores subroutines without the seed bytes. */
       /* The CID driver stores subroutines with seed bytes.  This     */
       /* case is taken care of when decoder->subrs_len == 0.          */
-      buf->start = decoder->subrs[idx];
-
-      if ( decoder->subrs_len )
-        buf->end     = buf->start + decoder->subrs_len[idx];
+      if ( decoder->locals_len )
+        buf->end     = buf->start + decoder->locals_len[idx];
       else
       {
         /* We are using subroutines from a CID font.  We must adjust */
         /* for the seed bytes.                                       */
         buf->start  += ( decoder->lenIV >= 0 ? decoder->lenIV : 0 );
-        buf->end     = decoder->subrs[idx + 1];
+        buf->end     = decoder->locals[idx + 1];
       }
 
-      buf->ptr = buf->start;
-
       if ( !buf->start )
       {
-        FT_ERROR(( "t1_decoder_parse_charstrings:"
+        FT_ERROR(( "cf2_initLocalRegionBuffer (Type 1 mode):"
                    " invoking empty subrs\n" ));
       }
     }
     else
     {
-      buf->start =
-      buf->ptr   = decoder->locals[idx];
       buf->end   = decoder->locals[idx + 1];
     }
+
+    buf->ptr = buf->start;
+    
     return FALSE;      /* success */
   }
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]