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

Side by Side Diff: src/base/ftgloadr.c

Issue 89753003: Update freetype to latest version of ASOP. (Closed) Base URL: https://chromium.googlesource.com/chromium/src/third_party/freetype.git@master
Patch Set: Created 7 years 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 | « src/base/ftdebug.c ('k') | src/base/ftglyph.c » ('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 /* ftgloadr.c */ 3 /* ftgloadr.c */
4 /* */ 4 /* */
5 /* The FreeType glyph loader (body). */ 5 /* The FreeType glyph loader (body). */
6 /* */ 6 /* */
7 /* Copyright 2002, 2003, 2004, 2005, 2006, 2010 by */ 7 /* Copyright 2002-2006, 2010, 2013 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
18 18
19 #include <ft2build.h> 19 #include <ft2build.h>
20 #include FT_INTERNAL_DEBUG_H
20 #include FT_INTERNAL_GLYPH_LOADER_H 21 #include FT_INTERNAL_GLYPH_LOADER_H
21 #include FT_INTERNAL_MEMORY_H 22 #include FT_INTERNAL_MEMORY_H
22 #include FT_INTERNAL_OBJECTS_H 23 #include FT_INTERNAL_OBJECTS_H
23 24
24 #undef FT_COMPONENT 25 #undef FT_COMPONENT
25 #define FT_COMPONENT trace_gloader 26 #define FT_COMPONENT trace_gloader
26 27
27 28
28 /*************************************************************************/ 29 /*************************************************************************/
29 /*************************************************************************/ 30 /*************************************************************************/
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 213
213 /* check points & tags */ 214 /* check points & tags */
214 new_max = base->n_points + current->n_points + n_points; 215 new_max = base->n_points + current->n_points + n_points;
215 old_max = loader->max_points; 216 old_max = loader->max_points;
216 217
217 if ( new_max > old_max ) 218 if ( new_max > old_max )
218 { 219 {
219 new_max = FT_PAD_CEIL( new_max, 8 ); 220 new_max = FT_PAD_CEIL( new_max, 8 );
220 221
221 if ( new_max > FT_OUTLINE_POINTS_MAX ) 222 if ( new_max > FT_OUTLINE_POINTS_MAX )
222 return FT_Err_Array_Too_Large; 223 return FT_THROW( Array_Too_Large );
223 224
224 if ( FT_RENEW_ARRAY( base->points, old_max, new_max ) || 225 if ( FT_RENEW_ARRAY( base->points, old_max, new_max ) ||
225 FT_RENEW_ARRAY( base->tags, old_max, new_max ) ) 226 FT_RENEW_ARRAY( base->tags, old_max, new_max ) )
226 goto Exit; 227 goto Exit;
227 228
228 if ( loader->use_extra ) 229 if ( loader->use_extra )
229 { 230 {
230 if ( FT_RENEW_ARRAY( loader->base.extra_points, 231 if ( FT_RENEW_ARRAY( loader->base.extra_points,
231 old_max * 2, new_max * 2 ) ) 232 old_max * 2, new_max * 2 ) )
232 goto Exit; 233 goto Exit;
(...skipping 11 matching lines...) Expand all
244 245
245 /* check contours */ 246 /* check contours */
246 old_max = loader->max_contours; 247 old_max = loader->max_contours;
247 new_max = base->n_contours + current->n_contours + 248 new_max = base->n_contours + current->n_contours +
248 n_contours; 249 n_contours;
249 if ( new_max > old_max ) 250 if ( new_max > old_max )
250 { 251 {
251 new_max = FT_PAD_CEIL( new_max, 4 ); 252 new_max = FT_PAD_CEIL( new_max, 4 );
252 253
253 if ( new_max > FT_OUTLINE_CONTOURS_MAX ) 254 if ( new_max > FT_OUTLINE_CONTOURS_MAX )
254 return FT_Err_Array_Too_Large; 255 return FT_THROW( Array_Too_Large );
255 256
256 if ( FT_RENEW_ARRAY( base->contours, old_max, new_max ) ) 257 if ( FT_RENEW_ARRAY( base->contours, old_max, new_max ) )
257 goto Exit; 258 goto Exit;
258 259
259 adjust = 1; 260 adjust = 1;
260 loader->max_contours = new_max; 261 loader->max_contours = new_max;
261 } 262 }
262 263
263 if ( adjust ) 264 if ( adjust )
264 FT_GlyphLoader_Adjust_Points( loader ); 265 FT_GlyphLoader_Adjust_Points( loader );
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 312
312 current->outline.n_points = 0; 313 current->outline.n_points = 0;
313 current->outline.n_contours = 0; 314 current->outline.n_contours = 0;
314 current->num_subglyphs = 0; 315 current->num_subglyphs = 0;
315 316
316 FT_GlyphLoader_Adjust_Points ( loader ); 317 FT_GlyphLoader_Adjust_Points ( loader );
317 FT_GlyphLoader_Adjust_Subglyphs( loader ); 318 FT_GlyphLoader_Adjust_Subglyphs( loader );
318 } 319 }
319 320
320 321
321 /* add current glyph to the base image - and prepare for another */ 322 /* add current glyph to the base image -- and prepare for another */
322 FT_BASE_DEF( void ) 323 FT_BASE_DEF( void )
323 FT_GlyphLoader_Add( FT_GlyphLoader loader ) 324 FT_GlyphLoader_Add( FT_GlyphLoader loader )
324 { 325 {
325 FT_GlyphLoad base; 326 FT_GlyphLoad base;
326 FT_GlyphLoad current; 327 FT_GlyphLoad current;
327 328
328 FT_UInt n_curr_contours; 329 FT_UInt n_curr_contours;
329 FT_UInt n_base_points; 330 FT_UInt n_base_points;
330 FT_UInt n; 331 FT_UInt n;
331 332
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 out->n_contours = (short)num_contours; 393 out->n_contours = (short)num_contours;
393 394
394 FT_GlyphLoader_Adjust_Points( target ); 395 FT_GlyphLoader_Adjust_Points( target );
395 } 396 }
396 397
397 return error; 398 return error;
398 } 399 }
399 400
400 401
401 /* END */ 402 /* END */
OLDNEW
« no previous file with comments | « src/base/ftdebug.c ('k') | src/base/ftglyph.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698