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

Side by Side Diff: third_party/freetype/src/cid/cidparse.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/cid/cidparse.h ('k') | third_party/freetype/src/cid/cidriver.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 /* cidparse.c */ 3 /* cidparse.c */
4 /* */ 4 /* */
5 /* CID-keyed Type1 parser (body). */ 5 /* CID-keyed Type1 parser (body). */
6 /* */ 6 /* */
7 /* Copyright 1996-2007, 2009, 2013, 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 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 79
80 FT_FRAME_EXIT(); 80 FT_FRAME_EXIT();
81 if ( error ) 81 if ( error )
82 goto Exit; 82 goto Exit;
83 83
84 Again: 84 Again:
85 /* now, read the rest of the file until we find */ 85 /* now, read the rest of the file until we find */
86 /* `StartData' or `/sfnts' */ 86 /* `StartData' or `/sfnts' */
87 { 87 {
88 FT_Byte buffer[256 + 10]; 88 FT_Byte buffer[256 + 10];
89 FT_Long read_len = 256 + 10; /* same as signed FT_Stream->size */ 89 FT_ULong read_len = 256 + 10;
90 FT_Byte* p = buffer; 90 FT_Byte* p = buffer;
91 91
92 92
93 for ( offset = FT_STREAM_POS(); ; offset += 256 ) 93 for ( offset = FT_STREAM_POS(); ; offset += 256 )
94 { 94 {
95 FT_Long stream_len; /* same as signed FT_Stream->size */ 95 FT_ULong stream_len;
96 96
97 97
98 stream_len = stream->size - FT_STREAM_POS(); 98 stream_len = stream->size - FT_STREAM_POS();
99 if ( stream_len == 0 ) 99 if ( stream_len == 0 )
100 { 100 {
101 FT_TRACE2(( "cid_parser_new: no `StartData' keyword found\n" )); 101 FT_TRACE2(( "cid_parser_new: no `StartData' keyword found\n" ));
102 error = FT_THROW( Invalid_File_Format ); 102 error = FT_THROW( Invalid_File_Format );
103 goto Exit; 103 goto Exit;
104 } 104 }
105 105
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 { 169 {
170 if ( parser->root.error ) 170 if ( parser->root.error )
171 { 171 {
172 error = parser->root.error; 172 error = parser->root.error;
173 goto Exit; 173 goto Exit;
174 } 174 }
175 175
176 if ( cur[0] == 'S' && ft_strncmp( (char*)cur, "StartData", 9 ) == 0 ) 176 if ( cur[0] == 'S' && ft_strncmp( (char*)cur, "StartData", 9 ) == 0 )
177 { 177 {
178 if ( ft_strncmp( (char*)arg1, "(Hex)", 5 ) == 0 ) 178 if ( ft_strncmp( (char*)arg1, "(Hex)", 5 ) == 0 )
179 parser->binary_length = ft_atol( (const char *)arg2 ); 179 {
180 FT_Long tmp = ft_atol( (const char *)arg2 );
181
182
183 if ( tmp < 0 )
184 {
185 FT_ERROR(( "cid_parser_new: invalid length of hex data\n" ));
186 error = FT_THROW( Invalid_File_Format );
187 }
188 else
189 parser->binary_length = (FT_ULong)tmp;
190 }
180 191
181 goto Exit; 192 goto Exit;
182 } 193 }
183 else if ( cur[1] == 's' && ft_strncmp( (char*)cur, "/sfnts", 6 ) == 0 ) 194 else if ( cur[1] == 's' && ft_strncmp( (char*)cur, "/sfnts", 6 ) == 0 )
184 { 195 {
185 FT_TRACE2(( "cid_parser_new: cannot handle Type 11 fonts\n" )); 196 FT_TRACE2(( "cid_parser_new: cannot handle Type 11 fonts\n" ));
186 error = FT_THROW( Unknown_File_Format ); 197 error = FT_THROW( Unknown_File_Format );
187 goto Exit; 198 goto Exit;
188 } 199 }
189 200
(...skipping 24 matching lines...) Expand all
214 FT_Stream stream = parser->stream; 225 FT_Stream stream = parser->stream;
215 226
216 227
217 FT_FRAME_RELEASE( parser->postscript ); 228 FT_FRAME_RELEASE( parser->postscript );
218 } 229 }
219 parser->root.funcs.done( &parser->root ); 230 parser->root.funcs.done( &parser->root );
220 } 231 }
221 232
222 233
223 /* END */ 234 /* END */
OLDNEW
« no previous file with comments | « third_party/freetype/src/cid/cidparse.h ('k') | third_party/freetype/src/cid/cidriver.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698