Index: third_party/freetype/src/cff/cffload.c |
diff --git a/third_party/freetype/src/cff/cffload.c b/third_party/freetype/src/cff/cffload.c |
index d9bec5966b17fd38d89bf4ac02ad6809f6637c5d..c61222d6519fd94776d5e08f34ff4527b320741a 100644 |
--- a/third_party/freetype/src/cff/cffload.c |
+++ b/third_party/freetype/src/cff/cffload.c |
@@ -4,7 +4,7 @@ |
/* */ |
/* OpenType and CFF data/program tables loader (body). */ |
/* */ |
-/* Copyright 1996-2014 by */ |
+/* Copyright 1996-2015 by */ |
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
/* */ |
/* This file is part of the FreeType project, and may only be used, */ |
@@ -357,7 +357,7 @@ |
case 3: |
for ( ; p < p_end; p += 3, poff++ ) |
- poff[0] = FT_PEEK_OFF3( p ); |
+ poff[0] = FT_PEEK_UOFF3( p ); |
break; |
default: |
@@ -809,7 +809,7 @@ |
/* When multiple GIDs map to the same CID, we choose the lowest */ |
/* GID. This is not described in any spec, but it matches the */ |
/* behaviour of recent Acroread versions. */ |
- for ( j = num_glyphs - 1; j >= 0 ; j-- ) |
+ for ( j = (FT_Long)num_glyphs - 1; j >= 0 ; j-- ) |
charset->cids[charset->sids[j]] = (FT_UShort)j; |
charset->max_cid = max_cid; |
@@ -1447,7 +1447,7 @@ |
FT_ULong base_offset; |
CFF_FontRecDict dict; |
CFF_IndexRec string_index; |
- FT_Int subfont_index; |
+ FT_UInt subfont_index; |
FT_ZERO( font ); |
@@ -1495,9 +1495,9 @@ |
if ( pure_cff ) |
{ |
/* well, we don't really forget the `disabled' fonts... */ |
- subfont_index = face_index; |
+ subfont_index = (FT_UInt)( face_index & 0xFFFF ); |
- if ( subfont_index >= (FT_Int)font->name_index.count ) |
+ if ( face_index > 0 && subfont_index >= font->name_index.count ) |
{ |
FT_ERROR(( "cff_font_load:" |
" invalid subfont index for pure CFF font (%d)\n", |