From 3f8c17392ae3f802b919c98f3a26bf4cd7ac9a94 Mon Sep 17 00:00:00 2001 From: Werner Lemberg Date: Wed, 23 Apr 2003 06:47:12 +0000 Subject: [PATCH] Cleanups. --- ChangeLog | 25 ++++++++++++---------- src/bdf/bdfdrivr.c | 34 +++++++++++++++-------------- src/cache/ftccmap.c | 33 ++++++++++++++-------------- src/cache/ftcsbits.c | 4 ++-- src/cache/ftlru.c | 51 ++++++++++++++++++++++---------------------- src/cff/cffgload.c | 7 +++--- src/cff/cffload.c | 15 +++++++------ 7 files changed, 88 insertions(+), 81 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2522b7ed1..37734bc2a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -209,13 +209,16 @@ 2003-02-13 Graham Asher - * include/freetype/ftincrem.h, src/cff/cffgload.c, - src/cid/cidgload.c, src/truetype/ttgload.c, src/type1/t1gload.c - [FT_CONFIG_OPTION_INCREMENTAL]: Changed the incremental loading - interface in a way that makes it simpler and allows glyph metrics to - be changed (e.g., by adding a constant, as required by CFF fonts) - rather than just overridden. This was required to make the - GhsotScript-to-FreeType bridge work. + Changed the incremental loading interface in a way that makes it + simpler and allows glyph metrics to be changed (e.g., by adding a + constant, as required by CFF fonts) rather than just overridden. + This was required to make the GhostScript-to-FreeType bridge work. + + * src/cff/cffgload.c (cff_slot_load) [FT_CONFIG_OPTION_INCREMENTAL]: + Allow metrics to be overridden. + * src/cid/cidgload.c, src/truetype/ttgload.c, src/type1/t1gload.c + [FT_CONFIG_OPTION_INCREMENTAL]: + * include/freetype/ftincrem.h: Updated. 2003-01-31 David Turner @@ -513,10 +516,10 @@ 2002-11-23 David Turner - * src/cff/cffload.c (cff_charser_load): Modified charset loader to - accept pre-defined charsets, even when the font contains fewer - glyphs. Also enforced more checks to ensure that we never overflow - the character codes array in the encoding. + * src/cff/cffload.c (cff_charset_load, cff_encoding_load): Modified + charset loader to accept pre-defined charsets, even when the font + contains fewer glyphs. Also enforced more checks to ensure that we + never overflow the character codes array in the encoding. 2002-11-22 Antoine Leca diff --git a/src/bdf/bdfdrivr.c b/src/bdf/bdfdrivr.c index 4f60266cb..62e7ca7cf 100644 --- a/src/bdf/bdfdrivr.c +++ b/src/bdf/bdfdrivr.c @@ -2,7 +2,7 @@ FreeType font driver for bdf files - Copyright (C) 2001-2002 by + Copyright (C) 2001, 2002, 2003 by Francesco Zappa Nardelli Permission is hereby granted, free of charge, to any person obtaining a copy @@ -637,6 +637,7 @@ THE SOFTWARE. { bdf_property_t* prop; + FT_ASSERT( face && face->bdffont ); prop = bdf_get_font_property( face->bdffont, (char*)prop_name ); @@ -644,26 +645,27 @@ THE SOFTWARE. { switch ( prop->format ) { - case BDF_ATOM: - aproperty->type = BDF_PROPERTY_TYPE_ATOM; - aproperty->u.atom = prop->value.atom; - break; + case BDF_ATOM: + aproperty->type = BDF_PROPERTY_TYPE_ATOM; + aproperty->u.atom = prop->value.atom; + break; - case BDF_INTEGER: - aproperty->type = BDF_PROPERTY_TYPE_INTEGER; - aproperty->u.integer = prop->value.int32; - break; + case BDF_INTEGER: + aproperty->type = BDF_PROPERTY_TYPE_INTEGER; + aproperty->u.integer = prop->value.int32; + break; - case BDF_CARDINAL: - aproperty->type = BDF_PROPERTY_TYPE_CARDINAL; - aproperty->u.cardinal = prop->value.card32; - break; + case BDF_CARDINAL: + aproperty->type = BDF_PROPERTY_TYPE_CARDINAL; + aproperty->u.cardinal = prop->value.card32; + break; - default: - goto Fail; + default: + goto Fail; } return 0; } + Fail: return FT_Err_Invalid_Argument; } @@ -676,7 +678,7 @@ THE SOFTWARE. FT_UNUSED( module ); if ( name && ft_strcmp( name, "get_bdf_property" ) == 0 ) - return (FT_Module_Interface) bdf_get_bdf_property; + return (FT_Module_Interface)bdf_get_bdf_property; return NULL; } diff --git a/src/cache/ftccmap.c b/src/cache/ftccmap.c index 8366ce574..bdb83abb5 100644 --- a/src/cache/ftccmap.c +++ b/src/cache/ftccmap.c @@ -4,7 +4,7 @@ /* */ /* FreeType CharMap cache (body) */ /* */ -/* Copyright 2000-2001, 2002 by */ +/* Copyright 2000-2001, 2002, 2003 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -193,16 +193,17 @@ break; case FTC_CMAP_BY_ENCODING: - if (desc->u.encoding == FT_ENCODING_UNICODE) + if ( desc->u.encoding == FT_ENCODING_UNICODE ) { - /* since the `interesting' table, with id's 3,10, is normally the - * last one, we loop backwards. This looses with type1 fonts with - * non-BMP characters (<.0001%), this wins with .ttf with non-BMP - * chars (.01% ?), and this is the same about 99.99% of the time! - */ + /* Since the `interesting' table, pid/eid (3,10), is normally the + * last one, we loop backwards. This looses with type1 fonts with + * non-BMP characters (<.0001%), this wins with .ttf with non-BMP + * chars (.01% ?), and this is the same about 99.99% of the time! + */ FT_UInt unicmap_idx = count; /* some UCS-2 map, if we found it */ + cur += count - 1; for ( idx = 0; idx < count; idx++, cur-- ) @@ -211,15 +212,15 @@ { unicmap_idx = idx; /* record we found a Unicode charmap */ - /* XXX If some new encodings to represent UCS-4 are added, - * they should be added here. - */ + /* XXX If some new encodings to represent UCS-4 are added, + * they should be added here. + */ if ( ( cur[0]->platform_id == TT_PLATFORM_MICROSOFT && - cur[0]->encoding_id == TT_MS_ID_UCS_4 ) || + cur[0]->encoding_id == TT_MS_ID_UCS_4 ) || ( cur[0]->platform_id == TT_PLATFORM_APPLE_UNICODE && - cur[0]->encoding_id == TT_APPLE_ID_UNICODE_32 ) ) + cur[0]->encoding_id == TT_APPLE_ID_UNICODE_32 ) ) - /* Hurray! We found a UCS-4 charmap. We can stop the scan! */ + /* Hurray! We found a UCS-4 charmap. We can stop the scan! */ { idx = count - 1 - idx; goto Found_idx_for_FTC_CMAP_BY_ENCODING; @@ -227,9 +228,9 @@ } } - /* We do not have any UCS-4 charmap. Sigh. - * Let's see if we have some other kind of Unicode charmap, though. - */ + /* We do not have any UCS-4 charmap. Sigh. + * Let's see if we have some other kind of Unicode charmap, though. + */ if ( unicmap_idx < count ) idx = count - 1 - unicmap_idx; } diff --git a/src/cache/ftcsbits.c b/src/cache/ftcsbits.c index 584038241..594c92a62 100644 --- a/src/cache/ftcsbits.c +++ b/src/cache/ftcsbits.c @@ -4,7 +4,7 @@ /* */ /* FreeType sbits manager (body). */ /* */ -/* Copyright 2000-2001, 2002 by */ +/* Copyright 2000-2001, 2002, 2003 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -189,7 +189,7 @@ sbit->format = (FT_Byte)bitmap->pixel_mode; sbit->max_grays = (FT_Byte)(bitmap->num_grays - 1); -#if 0 /* this doesn't work well with embedded bitmaps !! */ +#if 0 /* this doesn't work well with embedded bitmaps */ /* grab the bitmap when possible - this is a hack! */ if ( slot->flags & FT_GLYPH_OWN_BITMAP ) diff --git a/src/cache/ftlru.c b/src/cache/ftlru.c index 4eab0d9b4..bd450befe 100644 --- a/src/cache/ftlru.c +++ b/src/cache/ftlru.c @@ -4,7 +4,7 @@ /* */ /* Simple LRU list-cache (body). */ /* */ -/* Copyright 2000-2001, 2002 by */ +/* Copyright 2000-2001, 2002, 2003 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -188,40 +188,40 @@ goto Exit; } - /* since we haven't found the relevant element in our LRU list, + /* Since we haven't found the relevant element in our LRU list, * we're going to "create" a new one. * - * the following code is a bit special, because it tries to handle + * The following code is a bit special, because it tries to handle * out-of-memory conditions (OOM) in an intelligent way. * - * more precisely, if not enough memory is available to create a + * More precisely, if not enough memory is available to create a * new node or "flush" an old one, we need to remove the oldest - * elements from our list, and try again. since several tries may - * be necessary, a loop is needed + * elements from our list, and try again. Since several tries may + * be necessary, a loop is needed. * - * this loop will only exit when: + * This loop will only exit when: * - * - a new node was succesfully created, or an old node flushed + * - a new node was successfully created, or an old node flushed * - an error other than FT_Err_Out_Of_Memory is detected * - the list of nodes is empty, and it isn't possible to create * new nodes * - * on each unsucesful attempt, one node will be removed from the list + * On each unsuccessful attempt, one node will be removed from the list. * */ { - FT_Int drop_last = ( list->max_nodes > 0 && - list->num_nodes >= list->max_nodes ); + FT_Int drop_last = ( list->max_nodes > 0 && + list->num_nodes >= list->max_nodes ); for (;;) { node = NULL; - /* when "drop_last" is true, we should free the last node in - * the list to make room for a new one. note that we re-use - * its memory block to save allocation calls. - */ + /* If "drop_last" is true, we should free the last node in + * the list to make room for a new one. Note that we reuse + * its memory block to save allocation calls. + */ if ( drop_last ) { /* find the last node in the list @@ -244,10 +244,10 @@ node = *pnode; } - /* remove it from the list, and try to "flush" it. doing this will - * save a significant number of dynamic allocations compared to - * a classic destroy/create cycle - */ + /* Remove it from the list, and try to "flush" it. Doing this will + * save a significant number of dynamic allocations compared to + * a classic destroy/create cycle. + */ *pnode = NULL; list->num_nodes -= 1; @@ -257,14 +257,14 @@ if ( !error ) goto Success; - /* note that if an error occured during the flush, we need to + /* Note that if an error occured during the flush, we need to * finalize it since it is potentially in incomplete state. */ } - /* we finalize, but do not destroy the last node, we - * simply re-use its memory block ! - */ + /* We finalize, but do not destroy the last node, we + * simply reuse its memory block! + */ if ( clazz->node_done ) clazz->node_done( node, list->data ); @@ -272,8 +272,8 @@ } else { - /* try to allocate a new node when "drop_last" is not TRUE - * this usually happens on the first pass, when the LRU list + /* Try to allocate a new node when "drop_last" is not TRUE. + * This usually happens on the first pass, when the LRU list * is not already full. */ if ( FT_ALLOC( node, clazz->node_size ) ) @@ -316,7 +316,6 @@ } - FT_EXPORT_DEF( void ) FT_LruList_Remove( FT_LruList list, FT_LruNode node ) diff --git a/src/cff/cffgload.c b/src/cff/cffgload.c index 0432aa021..6c5c5d9ee 100644 --- a/src/cff/cffgload.c +++ b/src/cff/cffgload.c @@ -4,7 +4,7 @@ /* */ /* OpenType Glyph Loader (body). */ /* */ -/* Copyright 1996-2001, 2002 by */ +/* Copyright 1996-2001, 2002, 2003 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -2366,12 +2366,13 @@ #ifdef FT_CONFIG_OPTION_INCREMENTAL /* Incremental fonts can optionally override the metrics. */ - if ( !error && - face->root.internal->incremental_interface && + if ( !error && + face->root.internal->incremental_interface && face->root.internal->incremental_interface->funcs->get_glyph_metrics ) { FT_Incremental_MetricsRec metrics; + metrics.bearing_x = decoder.builder.left_bearing.x; metrics.bearing_y = decoder.builder.left_bearing.y; metrics.advance = decoder.builder.advance.x; diff --git a/src/cff/cffload.c b/src/cff/cffload.c index 66af469b8..5d22961e1 100644 --- a/src/cff/cffload.c +++ b/src/cff/cffload.c @@ -1595,7 +1595,7 @@ /* In order to use a predefined charset, the following must be */ /* true: The charset constructed for the glyphs in the font's */ /* charstrings dictionary must match the predefined charset in */ - /* the first num_glyphs */ + /* the first num_glyphs. */ charset->offset = offset; /* record charset type */ @@ -1749,9 +1749,10 @@ { FT_Byte* p; - /* by convention, GID 0 is always ".notdef" and is never */ - /* coded in the font. Hence, the number of codes found */ - /* in the table is 'count+1' */ + + /* By convention, GID 0 is always ".notdef" and is never */ + /* coded in the font. Hence, the number of codes found */ + /* in the table is `count+1'. */ /* */ encoding->count = count + 1; @@ -1821,7 +1822,7 @@ } } - /* simple check, one never knows what can be found in a font */ + /* simple check; one never knows what can be found in a font */ if ( encoding->count > 256 ) encoding->count = 256; } @@ -1923,8 +1924,8 @@ encoding->codes[j] = (FT_UShort)i; /* update encoding count */ - if ( encoding->count < j+1 ) - encoding->count = j+1; + if ( encoding->count < j + 1 ) + encoding->count = j + 1; } } }