Some formatting.

* src/cff/cffcmap.c: Remove compiler warnings.
* src/cache/ftccache.c, src/cache/ftccache.i,
src/pfr/pfrload.c, src/pfr/pfrgload.c: s/index/idx/.
* src/cff/cffload.c: s/select/fdselect/.
* src/raster/ftraster.c: s/wait/waiting/.
This commit is contained in:
Werner Lemberg 2002-08-06 21:47:40 +00:00
parent a170607556
commit 3c403e4c17
15 changed files with 313 additions and 210 deletions

View File

@ -1,36 +1,63 @@
2002-08-01 Graham Asher <graham.asher@btinternet.com>
* src/type1/t1load.c:
T1_Open_Face now tolerates a face with no charstrings if there
is an incremental loading interface. Type 1 faces supplied by
PostScript interpreters like GhostScript will typically not
provide any charstrings at load time, so this is essential
if they are to work.
2002-08-06 Werner Lemberg <wl@gnu.org>
* src/cff/cffcmap.c: Remove compiler warnings.
* src/cache/ftccache.c, src/cache/ftccache.i,
src/pfr/pfrload.c, src/pfr/pfrgload.c: s/index/idx/.
* src/cff/cffload.c: s/select/fdselect/.
* src/raster/ftraster.c: s/wait/waiting/.
2002-08-01 Graham Asher <graham.asher@btinternet.com>
* include/freetype/config/ftheader.h,
include/freetype/freetype.h,
include/freetype/ftincrem.h,
include/freetype/internal/ftobjs.h,
src/base/ftobjs.c,
src/cid/cidgload.c,
src/sfnt/sfobjs.c,
src/truetype/ttgload.c,
src/truetype/ttobjs.c,
src/type1/t1gload.c:
* src/type1/t1load.c (T1_Open_Face): Tolerate a face with no
charstrings if there is an incremental loading interface. Type 1
faces supplied by PostScript interpreters like GhostScript will
typically not provide any charstrings at load time, so this is
essential if they are to work.
2002-08-01 Graham Asher <graham.asher@btinternet.com>
Modified incremental loading interface to be closer to David's
preferences. The header freetype.h is not now affected,
the interface is specified via an FT_Parameter, the pointer to
the interface is hidden in an internal part of the face record,
and all the definitions are in ftincrem.h.
preferences. The header freetype.h is not now affected, the
interface is specified via an FT_Parameter, the pointer to the
interface is hidden in an internal part of the face record, and all
the definitions are in ftincrem.h.
* include/freetype/freeetype.h [FT_CONFIG_OPTION_INCREMENTAL]:
Removed.
* include/freetype/internal/ftobjs.h [FT_CONFIG_OPTION_INCREMENTAL]:
Include FT_INCREMENTAL_H.
(FT_Face_InternalRec) [FT_CONFIG_OPTION_INCREMENTAL]: Add
`incremental_interface'.
* src/base/ftobjs.c (open_face, FT_Open_Face)
[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
* src/sfnt/sfobjs.c (SFNT_Load_Face) [FT_CONFIG_OPTION_INCREMENTAL]:
Updated.
* src/truetype/ttgload.c (load_truetype_glyph)
[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
Free loaded glyph data properly.
(compute_glyph_metrics, TT_Load_Glyph)
[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
* src/truetype/ttobjs.c (TT_Face_Init)
[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
(T1_Parse_Glyph) [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
Free loaded glyph data properly.
(T1_Load_Glyph): Updated.
[FT_CONFIG_OPTION_INCREMENTAL]: Free loaded glyph data properly.
2002-07-30 David Turner <david@freetype.org>
* include/freetype/ftincrem.h: adding new experimental header file
* include/freetype/ftincrem.h: Adding new experimental header file
to demonstrate a "cleaner" API to support incremental font loading.
comments appreciated...
* src/tools/docmaker/*: adding new (more advanced) version of
the DocMaker tool. Python with regular expressions rocks..
* include/freetype/config/ftheader.h (FT_INCREMENTAL_H): New macro.
* src/tools/docmaker/*: Adding new (more advanced) version of
the DocMaker tool, using Python's sophisticated regexps.
2002-07-28 Werner Lemberg <wl@gnu.org>

View File

@ -1,14 +1,35 @@
#ifndef __FT_INCREMENTAL_H__
#define __FT_INCREMENTAL_H__
/***************************************************************************/
/* */
/* ftincrem.h */
/* */
/* FreeType incremental loading (specification). */
/* */
/* Copyright 2002 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
#ifndef __FTINCREM_H__
#define __FTINCREM_H__
#include <ft2build.h>
#include FT_FREETYPE_H
FT_BEGIN_HEADER
/*************************************************************************
/***************************************************************************
*
* @type: FT_Incremental
* @type:
* FT_Incremental
*
* @description:
* An opaque type describing a user-provided object used to implement
@ -21,31 +42,37 @@ FT_BEGIN_HEADER
* It is up to client applications to create and implement @FT_Incremental
* objects, as long as they provide implementations for the methods
* @FT_Incremental_GetGlyphDataFunc, @FT_Incremental_FreeGlyphDataFunc
* and @FT_Incremental_GetGlyphMetricsFunc
* and @FT_Incremental_GetGlyphMetricsFunc.
*
* see the description of @FT_Incremental_InterfaceRec to understand how
* See the description of @FT_Incremental_InterfaceRec to understand how
* to use incremental objects with FreeType.
*/
typedef struct FT_IncrementalRec_* FT_Incremental;
/*************************************************************************
/***************************************************************************
*
* @struct: FT_Incremental_Metrics
* @struct:
* FT_Incremental_Metrics
*
* @description:
* A small structure used to contain the basic glyph metrics returned
* by the @FT_Incremental_GetGlyphMetricsFunc method
* by the @FT_Incremental_GetGlyphMetricsFunc method.
*
* @fields:
* bearing_x :: left bearing, in font units.
* bearing_y :: top bearing, in font units.
* advance :: glyph advance, in font units
* bearing_x ::
* Left bearing, in font units.
*
* bearing_y ::
* Top bearing, in font units.
*
* advance ::
* Glyph advance, in font units.
*
* @note:
* These correspond to horizontal or vertical metrics depending on the
* value of the 'vertical' argument to the function
* @FT_Incremental_GetGlyphMetricsFunc
* @FT_Incremental_GetGlyphMetricsFunc.
*/
typedef struct FT_Incremental_MetricsRec_
{
@ -56,9 +83,10 @@ FT_BEGIN_HEADER
} FT_Incremental_MetricsRec, *FT_Incremental_Metrics;
/**************************************************************************
/***************************************************************************
*
* @type: FT_Incremental_GetGlyphDataFunc
* @type:
* FT_Incremental_GetGlyphDataFunc
*
* @description:
* A function called by FreeType to access a given glyph's data bytes
@ -72,17 +100,20 @@ FT_BEGIN_HEADER
* undefined for any other format.
*
* @input:
* incremental :: handle to an opaque @FT_Incremental handle provided
* by the client application
* incremental ::
* Handle to an opaque @FT_Incremental handle provided by the client
* application.
*
* glyph_index :: index of relevant glyph
* glyph_index ::
* Index of relevant glyph.
*
* @output:
* adata :: a structure describing the returned glyph data bytes
* (which will be accessed as a read-only byte block)
* adata ::
* A structure describing the returned glyph data bytes (which will be
* accessed as a read-only byte block).
*
* @return:
* FreeType error code. 0 means success
* FreeType error code. 0 means success.
*
* @note:
* If this function returns succesfully the method
@ -92,46 +123,67 @@ FT_BEGIN_HEADER
* Nested calls to @FT_Incremental_GetGlyphDataFunc can happen for
* compound glyphs.
*/
typedef FT_Error (*FT_Incremental_GetGlyphDataFunc)
( FT_Incremental incremental,
typedef FT_Error
(*FT_Incremental_GetGlyphDataFunc)( FT_Incremental incremental,
FT_UInt glyph_index,
FT_Data* adata );
/**************************************************************************
/***************************************************************************
*
* @type: FT_Incremental_FreeGlyphDataFunc
* @type:
* FT_Incremental_FreeGlyphDataFunc
*
* @description:
* A function used to release the glyph data bytes returned by a
* successful call to @FT_Incremental_GetGlyphDataFunc.
*
* @input:
* incremental :: handle to an opaque @FT_Incremental handle provided
* by the client application
* incremental ::
* A handle to an opaque @FT_Incremental handle provided by the client
* application.
*
* data :: glyph_index :: index of relevant glyph
* data ::
* A structure describing the glyph data bytes (which will be accessed
* as a read-only byte block).
*/
typedef void (*FT_Incremental_FreeGlyphDataFunc)
( FT_Incremental incremental,
typedef void
(*FT_Incremental_FreeGlyphDataFunc)( FT_Incremental incremental,
FT_Data* data );
/**************************************************************************
/***************************************************************************
*
* @type: FT_Incremental_GetGlyphMetricsFunc
* @type:
* FT_Incremental_GetGlyphMetricsFunc
*
* @description:
* A function used to retrieve the basic metrics of a given glyph index
* before accessing its data. This is necessary because, in certain formats
* like TrueType, the metrics are stored in a different place from the
* glyph images proper.
* before accessing its data. This is necessary because, in certain
* formats like TrueType, the metrics are stored in a different place from
* the glyph images proper.
*
* @input:
* incremental :: handle to an opaque @FT_Incremental handle provided
* by the client application
* incremental ::
* A handle to an opaque @FT_Incremental handle provided by the client
* application.
*
* glyph_index ::
* Index of relevant glyph.
*
* vertical ::
* If true, return vertical metrics.
*
* @output:
* ametrics ::
* The glyph metrics in font units.
*
* afound ::
* True if there are metrics at all.
*
*/
typedef FT_Error (*FT_Incremental_GetGlyphMetricsFunc)
typedef FT_Error
(*FT_Incremental_GetGlyphMetricsFunc)
( FT_Incremental incremental,
FT_UInt glyph_index,
FT_Bool vertical,
@ -139,24 +191,25 @@ FT_BEGIN_HEADER
FT_Bool *afound );
/*************************************************************************
/**************************************************************************
*
* @struct: FT_Incremental_FuncsRec
* @struct:
* FT_Incremental_FuncsRec
*
* @description:
* A table of functions for accessing fonts that load data
* incrementally. Used in @FT_Incremental_Interface.
*
* @fields:
* get_glyph_data :: The function to get glyph data. Must not be
* null.
* get_glyph_data ::
* The function to get glyph data. Must not be null.
*
* free_glyph_data :: The function to release glyph data. Must not
* be null.
* free_glyph_data ::
* The function to release glyph data. Must not be null.
*
* get_glyph_metrics :: The function to get glyph metrics. May be
* null if the font does not provide
* overriding glyph metrics.
* get_glyph_metrics ::
* The function to get glyph metrics. May be null if the font does
* not provide overriding glyph metrics.
*/
typedef struct FT_Incremental_FuncsRec_
{
@ -167,9 +220,10 @@ FT_BEGIN_HEADER
} FT_Incremental_FuncsRec;
/**************************************************************************
/***************************************************************************
*
* @struct: FT_Incremental_InterfaceRec
* @struct:
* FT_Incremental_InterfaceRec
*
* @description:
* A structure to be used with @FT_Open_Face to indicate that the user
@ -181,6 +235,7 @@ FT_BEGIN_HEADER
* FT_Parameter parameter;
* FT_Open_Args open_args;
*
*
* // set up incremental descriptor
* inc_int.funcs = my_funcs;
* inc_int.object = my_object;
@ -190,14 +245,15 @@ FT_BEGIN_HEADER
* parameter.data = &inc_int;
*
* // set up FT_Open_Args structure
* open_args.flags = (FT_Open_Flags)(ft_open_pathname | ft_open_params);
* open_args.flags = (FT_Open_Flags)( ft_open_pathname |
* ft_open_params );
* open_args.pathname = my_font_pathname;
* open_args.num_params = 1;
* open_args.params = &parameter; // we use one optional argument
*
* // open the
* // open the font
* error = FT_Open_Face( library, &open_args, index, &face );
* ....
* ...
* }
*/
typedef struct FT_Incremental_InterfaceRec_
@ -207,19 +263,24 @@ FT_BEGIN_HEADER
} FT_Incremental_InterfaceRec;
/**************************************************************************
/***************************************************************************
*
* @constant: FT_PARAM_TAG_INCREMENTAL
* @constant:
* FT_PARAM_TAG_INCREMENTAL
*
* @description:
* A constant used as the tag of @FT_Parameter structures to indicate
* an incremental loading object to be used by FreeType.
*
*/
#define FT_PARAM_TAG_INCREMENTAL FT_MAKE_TAG('i','n','c','r')
#define FT_PARAM_TAG_INCREMENTAL FT_MAKE_TAG( 'i', 'n', 'c', 'r' )
/* */
FT_END_HEADER
#endif /* __FT_INCREMENTAL_H__ */
#endif /* __FTINCREM_H__ */
/* END */

View File

@ -40,6 +40,7 @@
#include FT_INCREMENTAL_H
#endif
FT_BEGIN_HEADER
@ -300,7 +301,8 @@ FT_BEGIN_HEADER
/* */
/* postscript_name :: Postscript font name for this face. */
/* */
/* incremental_interface :: If non-null, the interface through */
/* incremental_interface :: */
/* If non-null, the interface through */
/* which glyph data and metrics are loaded */
/* incrementally for faces that do not provide */
/* all of this data when first opened. */

View File

@ -25,6 +25,7 @@
#include FT_TRUETYPE_TABLES_H
#include FT_OUTLINE_H
FT_BASE_DEF( void )
ft_validator_init( FT_Validator valid,
const FT_Byte* base,
@ -707,6 +708,7 @@
FT_Error error;
FT_Face_Internal internal;
clazz = driver->clazz;
memory = driver->root.memory;
@ -726,9 +728,12 @@
#ifdef FT_CONFIG_OPTION_INCREMENTAL
{
int i;
face->internal->incremental_interface = 0;
for (i = 0; i < num_params && !face->internal->incremental_interface; i++)
if (params[i].tag == FT_PARAM_TAG_INCREMENTAL)
for ( i = 0; i < num_params && !face->internal->incremental_interface;
i++ )
if ( params[i].tag == FT_PARAM_TAG_INCREMENTAL )
face->internal->incremental_interface = params[i].data;
}
#endif
@ -877,6 +882,7 @@
FT_Int num_params = 0;
FT_Parameter* params = 0;
if ( args->flags & ft_open_params )
{
num_params = args->num_params;
@ -909,6 +915,7 @@
FT_Int num_params = 0;
FT_Parameter* params = 0;
driver = FT_DRIVER( cur[0] );
if ( args->flags & ft_open_params )

30
src/cache/ftccache.c vendored
View File

@ -159,14 +159,14 @@
{
FT_Error error = 0;
FTC_Node *pnode;
FT_UInt index, num_buckets;
FT_UInt idx, num_buckets;
index = (FT_UInt)( node->hash & cache->mask );
if ( index < cache->p )
index = (FT_UInt)( node->hash & ( 2 * cache->mask + 1 ) );
idx = (FT_UInt)( node->hash & cache->mask );
if ( idx < cache->p )
idx = (FT_UInt)( node->hash & ( 2 * cache->mask + 1 ) );
pnode = cache->buckets + index;
pnode = cache->buckets + idx;
for (;;)
{
@ -239,15 +239,15 @@
FTC_Cache cache )
{
FTC_Node *pnode;
FT_UInt index;
FT_UInt idx;
FT_Error error = 0;
index = (FT_UInt)( node->hash & cache->mask );
if ( index < cache->p )
index = (FT_UInt)( node->hash & (2 * cache->mask + 1 ) );
idx = (FT_UInt)( node->hash & cache->mask );
if ( idx < cache->p )
idx = (FT_UInt)( node->hash & (2 * cache->mask + 1 ) );
pnode = cache->buckets + index;
pnode = cache->buckets + idx;
node->link = *pnode;
*pnode = node;
@ -603,14 +603,14 @@
FTC_Family family = (FTC_Family) lru;
FT_UFast hash = query->hash;
FTC_Node* bucket;
FT_UInt index;
FT_UInt idx;
index = hash & cache->mask;
if ( index < cache->p )
index = hash & ( cache->mask * 2 + 1 );
idx = hash & cache->mask;
if ( idx < cache->p )
idx = hash & ( cache->mask * 2 + 1 );
bucket = cache->buckets + index;
bucket = cache->buckets + idx;
if ( query->family != family ||

10
src/cache/ftccache.i vendored
View File

@ -79,14 +79,14 @@
hash = query->hash;
{
FT_UInt index;
FT_UInt idx;
index = hash & cache->mask;
if ( index < cache->p )
index = hash & ( cache->mask * 2 + 1 );
idx = hash & cache->mask;
if ( idx < cache->p )
idx = hash & ( cache->mask * 2 + 1 );
bucket = cache->buckets + index;
bucket = cache->buckets + idx;
}
#ifdef FT_DEBUG_LEVEL_ERROR

View File

@ -32,7 +32,7 @@
cff_cmap_encoding_init( CFF_CMapStd cmap )
{
TT_Face face = (TT_Face)FT_CMAP_FACE( cmap );
CFF_Font cff = face->extra.data;
CFF_Font cff = (CFF_Font)face->extra.data;
CFF_Encoding encoding = &cff->encoding;
@ -144,9 +144,9 @@
FT_UInt count;
TT_Face face = (TT_Face)FT_CMAP_FACE( cmap );
FT_Memory memory = FT_FACE_MEMORY( face );
CFF_Font cff = face->extra.data;
CFF_Font cff = (CFF_Font)face->extra.data;
CFF_Charset charset = &cff->charset;
PSNames_Service psnames = cff->psnames;
PSNames_Service psnames = (PSNames_Service)cff->psnames;
cmap->num_pairs = 0;

View File

@ -1358,20 +1358,20 @@
static void
CFF_Done_FD_Select( CFF_FDSelect select,
CFF_Done_FD_Select( CFF_FDSelect fdselect,
FT_Stream stream )
{
if ( select->data )
FT_FRAME_RELEASE( select->data );
if ( fdselect->data )
FT_FRAME_RELEASE( fdselect->data );
select->data_size = 0;
select->format = 0;
select->range_count = 0;
fdselect->data_size = 0;
fdselect->format = 0;
fdselect->range_count = 0;
}
static FT_Error
CFF_Load_FD_Select( CFF_FDSelect select,
CFF_Load_FD_Select( CFF_FDSelect fdselect,
FT_UInt num_glyphs,
FT_Stream stream,
FT_ULong offset )
@ -1385,23 +1385,23 @@
if ( FT_STREAM_SEEK( offset ) || FT_READ_BYTE( format ) )
goto Exit;
select->format = format;
select->cache_count = 0; /* clear cache */
fdselect->format = format;
fdselect->cache_count = 0; /* clear cache */
switch ( format )
{
case 0: /* format 0, that's simple */
select->data_size = num_glyphs;
fdselect->data_size = num_glyphs;
goto Load_Data;
case 3: /* format 3, a tad more complex */
if ( FT_READ_USHORT( num_ranges ) )
goto Exit;
select->data_size = num_ranges * 3 + 2;
fdselect->data_size = num_ranges * 3 + 2;
Load_Data:
if ( FT_FRAME_EXTRACT( select->data_size, select->data ) )
if ( FT_FRAME_EXTRACT( fdselect->data_size, fdselect->data ) )
goto Exit;
break;
@ -1415,30 +1415,31 @@
FT_LOCAL_DEF( FT_Byte )
cff_fd_select_get( CFF_FDSelect select,
cff_fd_select_get( CFF_FDSelect fdselect,
FT_UInt glyph_index )
{
FT_Byte fd = 0;
switch ( select->format )
switch ( fdselect->format )
{
case 0:
fd = select->data[glyph_index];
fd = fdselect->data[glyph_index];
break;
case 3:
/* first, compare to cache */
if ( (FT_UInt)(glyph_index-select->cache_first) < select->cache_count )
if ( (FT_UInt)( glyph_index - fdselect->cache_first ) <
fdselect->cache_count )
{
fd = select->cache_fd;
fd = fdselect->cache_fd;
break;
}
/* then, lookup the ranges array */
{
FT_Byte* p = select->data;
FT_Byte* p_limit = p + select->data_size;
FT_Byte* p = fdselect->data;
FT_Byte* p_limit = p + fdselect->data_size;
FT_Byte fd2;
FT_UInt first, limit;
@ -1457,9 +1458,9 @@
fd = fd2;
/* update cache */
select->cache_first = first;
select->cache_count = limit-first;
select->cache_fd = fd2;
fdselect->cache_first = first;
fdselect->cache_count = limit-first;
fdselect->cache_fd = fd2;
break;
}
first = limit;

View File

@ -409,7 +409,7 @@
cur = pos;
for ( n = 0; n < args_count; n++ )
{
FT_Int index, delta;
FT_Int idx, delta;
/* read the X argument */
@ -417,9 +417,9 @@
{
case 0: /* 8-bit index */
PFR_CHECK( 1 );
index = PFR_NEXT_BYTE( p );
cur->x = glyph->x_control[index];
FT_TRACE7(( " cx#%d", index ));
idx = PFR_NEXT_BYTE( p );
cur->x = glyph->x_control[idx];
FT_TRACE7(( " cx#%d", idx ));
break;
case 1: /* 16-bit value */
@ -445,9 +445,9 @@
{
case 0: /* 8-bit index */
PFR_CHECK( 1 );
index = PFR_NEXT_BYTE( p );
cur->y = glyph->y_control[index];
FT_TRACE7(( " cy#%d", index ));
idx = PFR_NEXT_BYTE( p );
cur->y = glyph->y_control[idx];
FT_TRACE7(( " cy#%d", idx ));
break;
case 1: /* 16-bit absolute value */

View File

@ -220,7 +220,7 @@
FT_LOCAL_DEF( FT_Error )
pfr_log_font_load( PFR_LogFont log_font,
FT_Stream stream,
FT_UInt index,
FT_UInt idx,
FT_UInt32 section_offset,
FT_Bool size_increment )
{
@ -235,10 +235,10 @@
FT_READ_USHORT( num_log_fonts ) )
goto Exit;
if ( index >= num_log_fonts )
if ( idx >= num_log_fonts )
return PFR_Err_Invalid_Argument;
if ( FT_STREAM_SKIP( index * 5 ) ||
if ( FT_STREAM_SKIP( idx * 5 ) ||
FT_READ_USHORT( size ) ||
FT_READ_UOFF3 ( offset ) )
goto Exit;

View File

@ -2652,13 +2652,13 @@
Long x1, x2, xs, e1, e2;
TProfileList wait;
TProfileList waiting;
TProfileList draw_left, draw_right;
/* Init empty linked lists */
Init_Linked( &wait );
Init_Linked( &waiting );
Init_Linked( &draw_left );
Init_Linked( &draw_right );
@ -2680,7 +2680,7 @@
if ( max_Y < top ) max_Y = top;
P->X = 0;
InsNew( &wait, P );
InsNew( &waiting, P );
P = Q;
}
@ -2698,7 +2698,7 @@
/* Then compute the distance of each profile from min_Y */
P = wait;
P = waiting;
while ( P )
{
@ -2717,9 +2717,9 @@
while ( ras.numTurns > 0 )
{
/* look in the wait list for new activations */
/* look in the waiting list for new activations */
P = wait;
P = waiting;
while ( P )
{
@ -2727,7 +2727,7 @@
P->countL -= y_height;
if ( P->countL == 0 )
{
DelOld( &wait, P );
DelOld( &waiting, P );
switch ( P->flow )
{

View File

@ -854,11 +854,13 @@
glyph_data_loaded = 1;
offset = 0;
count = glyph_data.length;
FT_MEM_ZERO( &inc_stream, sizeof ( inc_stream ) );
FT_Stream_OpenMemory( &inc_stream, glyph_data.pointer, glyph_data.length );
FT_Stream_OpenMemory( &inc_stream,
glyph_data.pointer, glyph_data.length );
loader->stream = &inc_stream;
}
else
#endif /* FT_CONFIG_OPTION_INCREMENTAL */
@ -1266,7 +1268,7 @@
Exit:
#ifdef FT_CONFIG_OPTION_INCREMENTAL
if (glyph_data_loaded)
if ( glyph_data_loaded )
face->root.internal->incremental_interface->funcs->free_glyph_data(
face->root.internal->incremental_interface->object,
&glyph_data );

View File

@ -122,10 +122,12 @@
FT_UInt glyph_index )
{
FT_Data glyph_data;
FT_Error error = T1_Parse_Glyph_And_Get_Char_String( decoder, glyph_index, &glyph_data );
FT_Error error = T1_Parse_Glyph_And_Get_Char_String(
decoder, glyph_index, &glyph_data );
#ifdef FT_CONFIG_OPTION_INCREMENTAL
if ( !error)
if ( !error )
{
T1_Face face = (T1_Face)decoder->builder.face;
@ -227,6 +229,7 @@
FT_Data glyph_data;
FT_Bool glyph_data_loaded = 0;
if ( load_flags & FT_LOAD_NO_RECURSE )
load_flags |= FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING;

View File

@ -1712,7 +1712,7 @@
}
#ifdef FT_CONFIG_OPTION_INCREMENTAL
if (!face->root.internal->incremental_interface)
if ( !face->root.internal->incremental_interface )
#endif
if ( !loader.charstrings.init )
{