Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(22)

Side by Side Diff: third_party/freetype/src/cff/cffload.c

Issue 1413673003: Update bundled freetype to 2.6.1 (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: DEPS for corpus Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/freetype/src/cff/cffload.h ('k') | third_party/freetype/src/cff/cffobjs.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /***************************************************************************/ 1 /***************************************************************************/
2 /* */ 2 /* */
3 /* cffload.c */ 3 /* cffload.c */
4 /* */ 4 /* */
5 /* OpenType and CFF data/program tables loader (body). */ 5 /* OpenType and CFF data/program tables loader (body). */
6 /* */ 6 /* */
7 /* Copyright 1996-2014 by */ 7 /* Copyright 1996-2015 by */
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
9 /* */ 9 /* */
10 /* This file is part of the FreeType project, and may only be used, */ 10 /* This file is part of the FreeType project, and may only be used, */
11 /* modified, and distributed under the terms of the FreeType project */ 11 /* modified, and distributed under the terms of the FreeType project */
12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
13 /* this file you indicate that you have read the license and */ 13 /* this file you indicate that you have read the license and */
14 /* understand and accept it fully. */ 14 /* understand and accept it fully. */
15 /* */ 15 /* */
16 /***************************************************************************/ 16 /***************************************************************************/
17 17
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 poff[0] = p[0]; 350 poff[0] = p[0];
351 break; 351 break;
352 352
353 case 2: 353 case 2:
354 for ( ; p < p_end; p += 2, poff++ ) 354 for ( ; p < p_end; p += 2, poff++ )
355 poff[0] = FT_PEEK_USHORT( p ); 355 poff[0] = FT_PEEK_USHORT( p );
356 break; 356 break;
357 357
358 case 3: 358 case 3:
359 for ( ; p < p_end; p += 3, poff++ ) 359 for ( ; p < p_end; p += 3, poff++ )
360 poff[0] = FT_PEEK_OFF3( p ); 360 poff[0] = FT_PEEK_UOFF3( p );
361 break; 361 break;
362 362
363 default: 363 default:
364 for ( ; p < p_end; p += 4, poff++ ) 364 for ( ; p < p_end; p += 4, poff++ )
365 poff[0] = FT_PEEK_ULONG( p ); 365 poff[0] = FT_PEEK_ULONG( p );
366 } 366 }
367 367
368 FT_FRAME_EXIT(); 368 FT_FRAME_EXIT();
369 } 369 }
370 370
(...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after
802 if ( charset->sids[i] > max_cid ) 802 if ( charset->sids[i] > max_cid )
803 max_cid = charset->sids[i]; 803 max_cid = charset->sids[i];
804 } 804 }
805 805
806 if ( FT_NEW_ARRAY( charset->cids, (FT_ULong)max_cid + 1 ) ) 806 if ( FT_NEW_ARRAY( charset->cids, (FT_ULong)max_cid + 1 ) )
807 goto Exit; 807 goto Exit;
808 808
809 /* When multiple GIDs map to the same CID, we choose the lowest */ 809 /* When multiple GIDs map to the same CID, we choose the lowest */
810 /* GID. This is not described in any spec, but it matches the */ 810 /* GID. This is not described in any spec, but it matches the */
811 /* behaviour of recent Acroread versions. */ 811 /* behaviour of recent Acroread versions. */
812 for ( j = num_glyphs - 1; j >= 0 ; j-- ) 812 for ( j = (FT_Long)num_glyphs - 1; j >= 0 ; j-- )
813 charset->cids[charset->sids[j]] = (FT_UShort)j; 813 charset->cids[charset->sids[j]] = (FT_UShort)j;
814 814
815 charset->max_cid = max_cid; 815 charset->max_cid = max_cid;
816 charset->num_glyphs = num_glyphs; 816 charset->num_glyphs = num_glyphs;
817 817
818 Exit: 818 Exit:
819 return error; 819 return error;
820 } 820 }
821 821
822 822
(...skipping 617 matching lines...) Expand 10 before | Expand all | Expand 10 after
1440 FT_FRAME_BYTE( header_size ), 1440 FT_FRAME_BYTE( header_size ),
1441 FT_FRAME_BYTE( absolute_offsize ), 1441 FT_FRAME_BYTE( absolute_offsize ),
1442 FT_FRAME_END 1442 FT_FRAME_END
1443 }; 1443 };
1444 1444
1445 FT_Error error; 1445 FT_Error error;
1446 FT_Memory memory = stream->memory; 1446 FT_Memory memory = stream->memory;
1447 FT_ULong base_offset; 1447 FT_ULong base_offset;
1448 CFF_FontRecDict dict; 1448 CFF_FontRecDict dict;
1449 CFF_IndexRec string_index; 1449 CFF_IndexRec string_index;
1450 FT_Int subfont_index; 1450 FT_UInt subfont_index;
1451 1451
1452 1452
1453 FT_ZERO( font ); 1453 FT_ZERO( font );
1454 FT_ZERO( &string_index ); 1454 FT_ZERO( &string_index );
1455 1455
1456 font->stream = stream; 1456 font->stream = stream;
1457 font->memory = memory; 1457 font->memory = memory;
1458 dict = &font->top_font.font_dict; 1458 dict = &font->top_font.font_dict;
1459 base_offset = FT_STREAM_POS(); 1459 base_offset = FT_STREAM_POS();
1460 1460
(...skipping 27 matching lines...) Expand all
1488 FT_SET_ERROR( cff_index_get_pointers( &string_index, 1488 FT_SET_ERROR( cff_index_get_pointers( &string_index,
1489 &font->strings, 1489 &font->strings,
1490 &font->string_pool ) ) ) 1490 &font->string_pool ) ) )
1491 goto Exit; 1491 goto Exit;
1492 1492
1493 font->num_strings = string_index.count; 1493 font->num_strings = string_index.count;
1494 1494
1495 if ( pure_cff ) 1495 if ( pure_cff )
1496 { 1496 {
1497 /* well, we don't really forget the `disabled' fonts... */ 1497 /* well, we don't really forget the `disabled' fonts... */
1498 subfont_index = face_index; 1498 subfont_index = (FT_UInt)( face_index & 0xFFFF );
1499 1499
1500 if ( subfont_index >= (FT_Int)font->name_index.count ) 1500 if ( face_index > 0 && subfont_index >= font->name_index.count )
1501 { 1501 {
1502 FT_ERROR(( "cff_font_load:" 1502 FT_ERROR(( "cff_font_load:"
1503 " invalid subfont index for pure CFF font (%d)\n", 1503 " invalid subfont index for pure CFF font (%d)\n",
1504 subfont_index )); 1504 subfont_index ));
1505 error = FT_THROW( Invalid_Argument ); 1505 error = FT_THROW( Invalid_Argument );
1506 goto Exit; 1506 goto Exit;
1507 } 1507 }
1508 1508
1509 font->num_faces = font->name_index.count; 1509 font->num_faces = font->name_index.count;
1510 } 1510 }
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
1694 1694
1695 if ( font->cf2_instance.finalizer ) 1695 if ( font->cf2_instance.finalizer )
1696 { 1696 {
1697 font->cf2_instance.finalizer( font->cf2_instance.data ); 1697 font->cf2_instance.finalizer( font->cf2_instance.data );
1698 FT_FREE( font->cf2_instance.data ); 1698 FT_FREE( font->cf2_instance.data );
1699 } 1699 }
1700 } 1700 }
1701 1701
1702 1702
1703 /* END */ 1703 /* END */
OLDNEW
« no previous file with comments | « third_party/freetype/src/cff/cffload.h ('k') | third_party/freetype/src/cff/cffobjs.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698