Cleanups.

This commit is contained in:
Werner Lemberg 2003-04-23 06:47:12 +00:00
parent 9a8898810d
commit 2acb963baf
7 changed files with 88 additions and 81 deletions

View File

@ -209,13 +209,16 @@
2003-02-13 Graham Asher <graham.asher@btinternet.com>
* 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 <david@freetype.org>
@ -513,10 +516,10 @@
2002-11-23 David Turner <david@freetype.org>
* 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 <Antoine-Freetype@Leca-Marti.org>

View File

@ -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;
}

33
src/cache/ftccmap.c vendored
View File

@ -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;
}

View File

@ -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 )

51
src/cache/ftlru.c vendored
View File

@ -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 )

View File

@ -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;

View File

@ -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;
}
}
}