ref: dc624ca4dcac1cbfb6870414e6aaedba43aeb9ee
parent: eeb83204457a962ca173e6f1a0684347a505e15e
author: Werner Lemberg <[email protected]>
date: Tue Jun 4 06:30:48 EDT 2013
Apply fixes for cppcheck nitpicks. http://cppcheck.sourceforge.net/ Note that the current version heavily chokes on FreeType, delivering even wrong results. I will report those issues to the cppcheck team so that a newer version gives improved results hopefully. */* Improve variable scopes. */* Remove redundant initializations which get overwritten. * src/base/ftmac.c ,builds/mac/ftmac.c (count_faces_scalable): Remove unused variable. * src/base/ftdbgmem.c (ft_mem_table_destroy): `table' can't be zero. * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt1_entry_validate): Remove functionless code. * src/tools/ftrandom.c (main): Fix memory leak.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,26 @@
+2013-06-04 Werner Lemberg <[email protected]>
+
+ Apply fixes for cppcheck nitpicks.
+
+ http://cppcheck.sourceforge.net/
+
+ Note that the current version heavily chokes on FreeType, delivering
+ even wrong results. I will report those issues to the cppcheck team
+ so that a newer version gives improved results hopefully.
+
+ */* Improve variable scopes.
+ */* Remove redundant initializations which get overwritten.
+
+ * src/base/ftmac.c ,builds/mac/ftmac.c (count_faces_scalable):
+ Remove unused variable.
+
+ * src/base/ftdbgmem.c (ft_mem_table_destroy): `table' can't be zero.
+
+ * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt1_entry_validate):
+ Remove functionless code.
+
+ * src/tools/ftrandom.c (main): Fix memory leak.
+
2013-06-03 Werner Lemberg <[email protected]>
Add CFF_CONFIG_OPTION_OLD_ENGINE configuration option.
--- a/builds/mac/ftmac.c
+++ b/builds/mac/ftmac.c
@@ -696,11 +696,9 @@
count_faces_scalable( char* fond_data )
{
AsscEntry* assoc;
- FamRec* fond;
short i, face, face_all;
- fond = (FamRec*)fond_data;
face_all = EndianS16_BtoN( *( (short *)( fond_data +
sizeof ( FamRec ) ) ) ) + 1;
assoc = (AsscEntry*)( fond_data + sizeof ( FamRec ) + 2 );
@@ -1186,7 +1184,7 @@
ResFileRefNum res_ref;
ResourceIndex res_index;
Handle fond;
- short num_faces_in_res, num_faces_in_fond;
+ short num_faces_in_res;
if ( noErr != FT_FSPathMakeRes( pathname, &res_ref ) )
@@ -1199,6 +1197,9 @@
num_faces_in_res = 0;
for ( res_index = 1; ; ++res_index )
{
+ short num_faces_in_fond;
+
+
fond = Get1IndResource( TTAG_FOND, res_index );
if ( ResError() )
break;
--- a/src/autofit/afcjk.c
+++ b/src/autofit/afcjk.c
@@ -966,14 +966,15 @@
/* can make a single edge. */
if ( link )
{
- AF_Segment seg1 = edge->first;
- AF_Segment link1;
+ AF_Segment seg1 = edge->first;
FT_Pos dist2 = 0;
do
{
- link1 = seg1->link;
+ AF_Segment link1 = seg1->link;
+
+
if ( link1 )
{
dist2 = AF_SEGMENT_DIST( link, link1 );
--- a/src/autofit/afglobal.c
+++ b/src/autofit/afglobal.c
@@ -55,7 +55,7 @@
static FT_Error
af_face_globals_compute_script_coverage( AF_FaceGlobals globals )
{
- FT_Error error = FT_Err_Ok;
+ FT_Error error;
FT_Face face = globals->face;
FT_CharMap old_charmap = face->charmap;
FT_Byte* gscripts = globals->glyph_scripts;
--- a/src/base/ftdbgmem.c
+++ b/src/base/ftdbgmem.c
@@ -4,7 +4,7 @@
/* */
/* Memory debugger (body). */
/* */
-/* Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2009 by */
+/* Copyright 2001-2006, 2009, 2013 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -344,85 +344,80 @@
ft_mem_table_destroy( FT_MemTable table )
{
FT_ULong i;
+ FT_Long leak_count = 0;
+ FT_ULong leaks = 0;
FT_DumpMemory( table->memory );
- if ( table )
+ /* remove all blocks from the table, revealing leaked ones */
+ for ( i = 0; i < table->size; i++ )
{
- FT_Long leak_count = 0;
- FT_ULong leaks = 0;
+ FT_MemNode *pnode = table->buckets + i, next, node = *pnode;
- /* remove all blocks from the table, revealing leaked ones */
- for ( i = 0; i < table->size; i++ )
+ while ( node )
{
- FT_MemNode *pnode = table->buckets + i, next, node = *pnode;
+ next = node->link;
+ node->link = 0;
-
- while ( node )
+ if ( node->size > 0 )
{
- next = node->link;
- node->link = 0;
+ printf(
+ "leaked memory block at address %p, size %8ld in (%s:%ld)\n",
+ node->address, node->size,
+ FT_FILENAME( node->source->file_name ),
+ node->source->line_no );
- if ( node->size > 0 )
- {
- printf(
- "leaked memory block at address %p, size %8ld in (%s:%ld)\n",
- node->address, node->size,
- FT_FILENAME( node->source->file_name ),
- node->source->line_no );
+ leak_count++;
+ leaks += node->size;
- leak_count++;
- leaks += node->size;
+ ft_mem_table_free( table, node->address );
+ }
- ft_mem_table_free( table, node->address );
- }
+ node->address = NULL;
+ node->size = 0;
- node->address = NULL;
- node->size = 0;
-
- ft_mem_table_free( table, node );
- node = next;
- }
- table->buckets[i] = 0;
+ ft_mem_table_free( table, node );
+ node = next;
}
+ table->buckets[i] = 0;
+ }
- ft_mem_table_free( table, table->buckets );
- table->buckets = NULL;
+ ft_mem_table_free( table, table->buckets );
+ table->buckets = NULL;
- table->size = 0;
- table->nodes = 0;
+ table->size = 0;
+ table->nodes = 0;
- /* remove all sources */
- for ( i = 0; i < FT_MEM_SOURCE_BUCKETS; i++ )
- {
- FT_MemSource source, next;
+ /* remove all sources */
+ for ( i = 0; i < FT_MEM_SOURCE_BUCKETS; i++ )
+ {
+ FT_MemSource source, next;
- for ( source = table->sources[i]; source != NULL; source = next )
- {
- next = source->link;
- ft_mem_table_free( table, source );
- }
-
- table->sources[i] = NULL;
+ for ( source = table->sources[i]; source != NULL; source = next )
+ {
+ next = source->link;
+ ft_mem_table_free( table, source );
}
- printf(
- "FreeType: total memory allocations = %ld\n", table->alloc_total );
- printf(
- "FreeType: maximum memory footprint = %ld\n", table->alloc_max );
+ table->sources[i] = NULL;
+ }
- ft_mem_table_free( table, table );
+ printf( "FreeType: total memory allocations = %ld\n",
+ table->alloc_total );
+ printf( "FreeType: maximum memory footprint = %ld\n",
+ table->alloc_max );
- if ( leak_count > 0 )
- ft_mem_debug_panic(
- "FreeType: %ld bytes of memory leaked in %ld blocks\n",
- leaks, leak_count );
+ ft_mem_table_free( table, table );
- printf( "FreeType: no memory leaks detected\n" );
- }
+ if ( leak_count > 0 )
+ ft_mem_debug_panic(
+ "FreeType: %ld bytes of memory leaked in %ld blocks\n",
+ leaks, leak_count );
+
+ printf( "FreeType: no memory leaks detected\n" );
}
--- a/src/base/ftmac.c
+++ b/src/base/ftmac.c
@@ -358,11 +358,9 @@
count_faces_scalable( char* fond_data )
{
AsscEntry* assoc;
- FamRec* fond;
short i, face, face_all;
- fond = (FamRec*)fond_data;
face_all = EndianS16_BtoN( *( (short *)( fond_data +
sizeof ( FamRec ) ) ) ) + 1;
assoc = (AsscEntry*)( fond_data + sizeof ( FamRec ) + 2 );
@@ -800,7 +798,7 @@
ResFileRefNum res_ref;
ResourceIndex res_index;
Handle fond;
- short num_faces_in_res, num_faces_in_fond;
+ short num_faces_in_res;
if ( noErr != FT_FSPathMakeRes( pathname, &res_ref ) )
@@ -813,6 +811,9 @@
num_faces_in_res = 0;
for ( res_index = 1; ; ++res_index )
{
+ short num_faces_in_fond;
+
+
fond = Get1IndResource( TTAG_FOND, res_index );
if ( ResError() )
break;
--- a/src/bdf/bdflib.c
+++ b/src/bdf/bdflib.c
@@ -520,7 +520,7 @@
unsigned long *alen )
{
unsigned long i, j;
- char *fp, *dp;
+ char* dp;
*alen = 0;
@@ -531,7 +531,9 @@
dp = list->field[0];
for ( i = j = 0; i < list->used; i++ )
{
- fp = list->field[i];
+ char* fp = list->field[i];
+
+
while ( *fp )
dp[j++] = *fp++;
--- a/src/cff/cf2font.c
+++ b/src/cff/cf2font.c
@@ -143,7 +143,7 @@
/* pointer to parsed font object */
CFF_Decoder* decoder = font->decoder;
- FT_Bool needExtraSetup = FALSE;
+ FT_Bool needExtraSetup;
/* character space units */
CF2_Fixed boldenX = font->syntheticEmboldeningAmountX;
--- a/src/gxvalid/gxvkern.c
+++ b/src/gxvalid/gxvkern.c
@@ -4,7 +4,7 @@
/* */
/* TrueTypeGX/AAT kern table validation (body). */
/* */
-/* Copyright 2004, 2005, 2006, 2007 */
+/* Copyright 2004-2007, 2013 */
/* by suzuki toshiya, Masatake YAMATO, Red Hat K.K., */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
@@ -303,8 +303,6 @@
#ifdef GXV_LOAD_UNUSED_VARS
kernAction = FT_NEXT_USHORT( p );
kernValue = FT_NEXT_USHORT( p );
-#else
- p += 4;
#endif
}
}
--- a/src/gxvalid/gxvmod.c
+++ b/src/gxvalid/gxvmod.c
@@ -200,7 +200,7 @@
/* without volatile on `error' GCC 4.1.1. emits: */
/* warning: variable 'error' might be clobbered by 'longjmp' or 'vfork' */
/* this warning seems spurious but --- */
- FT_Error volatile error = FT_Err_Ok;
+ FT_Error volatile error;
FT_ValidatorRec volatile valid;
--- a/src/gxvalid/gxvmort.c
+++ b/src/gxvalid/gxvmort.c
@@ -4,7 +4,7 @@
/* */
/* TrueTypeGX/AAT mort table validation (body). */
/* */
-/* Copyright 2005 by suzuki toshiya, Masatake YAMATO, Red Hat K.K., */
+/* Copyright 2005, 2013 by suzuki toshiya, Masatake YAMATO, Red Hat K.K., */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -163,8 +163,7 @@
};
- GXV_Validate_Func func;
- FT_UShort i;
+ FT_UShort i;
GXV_NAME_ENTER( "subtables in a chain" );
@@ -171,6 +170,8 @@
for ( i = 0; i < nSubtables; i++ )
{
+ GXV_Validate_Func func;
+
FT_UShort length;
FT_UShort coverage;
#ifdef GXV_LOAD_UNUSED_VARS
--- a/src/gxvalid/gxvmorx.c
+++ b/src/gxvalid/gxvmorx.c
@@ -4,7 +4,7 @@
/* */
/* TrueTypeGX/AAT morx table validation (body). */
/* */
-/* Copyright 2005, 2008 by */
+/* Copyright 2005, 2008, 2013 by */
/* suzuki toshiya, Masatake YAMATO, Red Hat K.K., */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
@@ -57,8 +57,6 @@
};
- GXV_Validate_Func func;
-
FT_UShort i;
@@ -66,6 +64,8 @@
for ( i = 0; i < nSubtables; i++ )
{
+ GXV_Validate_Func func;
+
FT_ULong length;
FT_ULong coverage;
#ifdef GXV_LOAD_UNUSED_VARS
--- a/src/lzw/ftlzw.c
+++ b/src/lzw/ftlzw.c
@@ -111,7 +111,7 @@
FT_Stream source )
{
FT_LzwState lzw = &zip->lzw;
- FT_Error error = FT_Err_Ok;
+ FT_Error error;
zip->stream = stream;
--- a/src/pcf/pcfread.c
+++ b/src/pcf/pcfread.c
@@ -92,7 +92,7 @@
PCF_Toc toc = &face->toc;
PCF_Table tables;
- FT_Memory memory = FT_FACE(face)->memory;
+ FT_Memory memory = FT_FACE( face )->memory;
FT_UInt n;
@@ -402,7 +402,7 @@
FT_ULong nprops, i;
FT_ULong format, size;
FT_Error error;
- FT_Memory memory = FT_FACE(face)->memory;
+ FT_Memory memory = FT_FACE( face )->memory;
FT_ULong string_size;
FT_String* strings = 0;
@@ -566,10 +566,10 @@
pcf_get_metrics( FT_Stream stream,
PCF_Face face )
{
- FT_Error error = FT_Err_Ok;
- FT_Memory memory = FT_FACE(face)->memory;
+ FT_Error error;
+ FT_Memory memory = FT_FACE( face )->memory;
FT_ULong format, size;
- PCF_Metric metrics = 0;
+ PCF_Metric metrics = 0;
FT_ULong nmetrics, i;
@@ -663,8 +663,8 @@
pcf_get_bitmaps( FT_Stream stream,
PCF_Face face )
{
- FT_Error error = FT_Err_Ok;
- FT_Memory memory = FT_FACE(face)->memory;
+ FT_Error error;
+ FT_Memory memory = FT_FACE( face )->memory;
FT_Long* offsets = NULL;
FT_Long bitmapSizes[GLYPHPADOPTIONS];
FT_ULong format, size;
@@ -765,8 +765,8 @@
pcf_get_encodings( FT_Stream stream,
PCF_Face face )
{
- FT_Error error = FT_Err_Ok;
- FT_Memory memory = FT_FACE(face)->memory;
+ FT_Error error;
+ FT_Memory memory = FT_FACE( face )->memory;
FT_ULong format, size;
int firstCol, lastCol;
int firstRow, lastRow;
@@ -914,7 +914,7 @@
FT_ULong type )
{
FT_ULong format, size;
- FT_Error error = FT_Err_Ok;
+ FT_Error error;
PCF_Accel accel = &face->accel;
@@ -1014,7 +1014,7 @@
( *(prop->value.atom) == 'B' || *(prop->value.atom) == 'b' ) )
{
face->style_flags |= FT_STYLE_FLAG_BOLD;
- strings[1] = (char *)"Bold";
+ strings[1] = (char*)"Bold";
}
prop = pcf_find_property( pcf, "SETWIDTH_NAME" );
@@ -1021,13 +1021,13 @@
if ( prop && prop->isString &&
*(prop->value.atom) &&
!( *(prop->value.atom) == 'N' || *(prop->value.atom) == 'n' ) )
- strings[3] = (char *)(prop->value.atom);
+ strings[3] = (char*)( prop->value.atom );
prop = pcf_find_property( pcf, "ADD_STYLE_NAME" );
if ( prop && prop->isString &&
*(prop->value.atom) &&
!( *(prop->value.atom) == 'N' || *(prop->value.atom) == 'n' ) )
- strings[0] = (char *)(prop->value.atom);
+ strings[0] = (char*)( prop->value.atom );
for ( len = 0, nn = 0; nn < 4; nn++ )
{
@@ -1041,7 +1041,7 @@
if ( len == 0 )
{
- strings[0] = (char *)"Regular";
+ strings[0] = (char*)"Regular";
lengths[0] = ft_strlen( strings[0] );
len = lengths[0] + 1;
}
@@ -1079,7 +1079,7 @@
for ( mm = 0; mm < len; mm++ )
- if (s[mm] == ' ')
+ if ( s[mm] == ' ' )
s[mm] = '-';
}
@@ -1097,7 +1097,7 @@
PCF_Face face )
{
FT_Error error = FT_Err_Ok;
- FT_Memory memory = FT_FACE(face)->memory;
+ FT_Memory memory = FT_FACE( face )->memory;
FT_Bool hasBDFAccelerators;
--- a/src/psaux/afmparse.c
+++ b/src/psaux/afmparse.c
@@ -120,7 +120,6 @@
afm_stream_read_one( AFM_Stream stream )
{
char* str;
- int ch;
afm_stream_skip_spaces( stream );
@@ -131,7 +130,9 @@
while ( 1 )
{
- ch = AFM_GETC();
+ int ch = AFM_GETC();
+
+
if ( AFM_IS_SPACE( ch ) )
break;
else if ( AFM_IS_NEWLINE( ch ) )
@@ -160,7 +161,6 @@
afm_stream_read_string( AFM_Stream stream )
{
char* str;
- int ch;
afm_stream_skip_spaces( stream );
@@ -172,7 +172,9 @@
/* scan to eol */
while ( 1 )
{
- ch = AFM_GETC();
+ int ch = AFM_GETC();
+
+
if ( AFM_IS_NEWLINE( ch ) )
{
stream->status = AFM_STREAM_STATUS_EOL;
--- a/src/pshinter/pshalgo.c
+++ b/src/pshinter/pshalgo.c
@@ -401,13 +401,13 @@
FT_Fixed delta,
FT_Int dimension )
{
- PSH_Hint hint;
- FT_UInt count;
+ FT_UInt count;
for ( count = 0; count < table->max_hints; count++ )
{
- hint = table->hints + count;
+ PSH_Hint hint = table->hints + count;
+
hint->cur_pos = FT_MulFix( hint->org_pos, scale ) + delta;
hint->cur_len = FT_MulFix( hint->org_len, scale );
--- a/src/pshinter/pshrec.c
+++ b/src/pshinter/pshrec.c
@@ -316,7 +316,7 @@
FT_UInt bit_count,
FT_Memory memory )
{
- FT_Error error = FT_Err_Ok;
+ FT_Error error;
PS_Mask mask;
@@ -583,12 +583,13 @@
FT_UInt end_point )
{
FT_UInt count = dim->masks.num_masks;
- PS_Mask mask;
if ( count > 0 )
{
- mask = dim->masks.masks + count - 1;
+ PS_Mask mask = dim->masks.masks + count - 1;
+
+
mask->end_point = end_point;
}
}
@@ -621,7 +622,7 @@
FT_UInt end_point,
FT_Memory memory )
{
- FT_Error error = FT_Err_Ok;
+ FT_Error error;
/* reset current mask, if any */
--- a/src/raster/ftraster.c
+++ b/src/raster/ftraster.c
@@ -806,8 +806,7 @@
static Bool
End_Profile( RAS_ARGS Bool overshoot )
{
- Long h;
- PProfile oldProfile;
+ Long h;
h = (Long)( ras.top - ras.cProfile->offset );
@@ -821,6 +820,9 @@
if ( h > 0 )
{
+ PProfile oldProfile;
+
+
FT_TRACE6(( "Ending profile %p, start = %ld, height = %ld\n",
ras.cProfile, ras.cProfile->start, h ));
@@ -877,7 +879,7 @@
Insert_Y_Turn( RAS_ARGS Int y )
{
PLong y_turns;
- Int y2, n;
+ Int n;
n = ras.numTurns - 1;
@@ -891,7 +893,9 @@
if ( n >= 0 && y > y_turns[n] )
while ( n >= 0 )
{
- y2 = (Int)y_turns[n];
+ Int y2 = (Int)y_turns[n];
+
+
y_turns[n] = y;
y = y2;
n--;
@@ -927,7 +931,6 @@
static Bool
Finalize_Profile_Table( RAS_ARG )
{
- Int bottom, top;
UShort n;
PProfile p;
@@ -939,6 +942,9 @@
{
while ( n > 0 )
{
+ Int bottom, top;
+
+
if ( n > 1 )
p->link = (PProfile)( p->offset + p->height );
else
@@ -2032,9 +2038,7 @@
int i;
unsigned start;
- PProfile lastProfile;
-
ras.fProfile = NULL;
ras.joint = FALSE;
ras.fresh = FALSE;
@@ -2051,7 +2055,8 @@
for ( i = 0; i < ras.outline.n_contours; i++ )
{
- Bool o;
+ PProfile lastProfile;
+ Bool o;
ras.state = Unknown_State;
@@ -2275,8 +2280,6 @@
PProfile right )
{
Long e1, e2;
- int c1, c2;
- Byte f1, f2;
Byte* target;
FT_UNUSED( y );
@@ -2295,6 +2298,10 @@
if ( e2 >= 0 && e1 < ras.bWidth )
{
+ int c1, c2;
+ Byte f1, f2;
+
+
if ( e1 < 0 )
e1 = 0;
if ( e2 >= ras.bWidth )
@@ -2518,10 +2525,6 @@
PProfile left,
PProfile right )
{
- Long e1, e2;
- PByte bits;
- Byte f1;
-
FT_UNUSED( left );
FT_UNUSED( right );
@@ -2528,11 +2531,18 @@
if ( x2 - x1 < ras.precision )
{
+ Long e1, e2;
+ Byte f1;
+
+
e1 = CEILING( x1 );
e2 = FLOOR ( x2 );
if ( e1 == e2 )
{
+ PByte bits;
+
+
bits = ras.bTarget + ( y >> 3 );
f1 = (Byte)( 0x80 >> ( y & 7 ) );
@@ -2729,8 +2739,6 @@
static void
Vertical_Gray_Sweep_Step( RAS_ARG )
{
- Int c1, c2;
- PByte pix, bit, bit2;
short* count = (short*)count_table;
Byte* grays;
@@ -2739,6 +2747,9 @@
if ( ras.traceOfs > ras.gray_width )
{
+ PByte pix;
+
+
pix = ras.gTarget + ras.traceG + ras.gray_min_x * 4;
grays = ras.grays;
@@ -2749,7 +2760,10 @@
Int last_bit = last_pixel & 3;
Bool over = 0;
+ Int c1, c2;
+ PByte bit, bit2;
+
if ( ras.gray_max_x >= last_cell && last_bit != 3 )
{
ras.gray_max_x = last_cell - 1;
@@ -2841,7 +2855,6 @@
{
Long e1, e2;
PByte pixel;
- Byte color;
/* During the horizontal sweep, we only take care of drop-outs */
@@ -2895,6 +2908,9 @@
if ( e1 >= 0 )
{
+ Byte color;
+
+
if ( x2 - x1 >= ras.precision_half )
color = ras.grays[2];
else
--- a/src/smooth/ftgrays.c
+++ b/src/smooth/ftgrays.c
@@ -630,7 +630,7 @@
TPos x2,
TCoord y2 )
{
- TCoord ex1, ex2, fx1, fx2, delta, mod, lift, rem;
+ TCoord ex1, ex2, fx1, fx2, delta, mod;
long p, first, dx;
int incr;
@@ -691,6 +691,9 @@
if ( ex1 != ex2 )
{
+ TCoord lift, rem;
+
+
p = ONE_PIXEL * ( y2 - y1 + delta );
lift = (TCoord)( p / dx );
rem = (TCoord)( p % dx );
@@ -1257,9 +1260,7 @@
TPos area,
TCoord acount )
{
- FT_Span* span;
- int count;
- int coverage;
+ int coverage;
/* compute the coverage line's coverage, depending on the */
@@ -1301,6 +1302,10 @@
if ( coverage )
{
+ FT_Span* span;
+ int count;
+
+
/* see whether we can add this span to the current list */
count = ras.num_gray_spans;
span = ras.gray_spans + count - 1;
--- a/src/tools/apinames.c
+++ b/src/tools/apinames.c
@@ -155,8 +155,6 @@
case OUTPUT_WATCOM_LBC:
{
- /* we must omit the .dll suffix from the library name */
- char temp[512];
const char* dot;
@@ -167,10 +165,12 @@
exit( 4 );
}
+ /* we must omit the .dll suffix from the library name */
dot = strchr( dll_name, '.' );
if ( dot != NULL )
{
- int len = dot - dll_name;
+ char temp[512];
+ int len = dot - dll_name;
if ( len > (int)( sizeof ( temp ) - 1 ) )
--- a/src/tools/ftrandom/ftrandom.c
+++ b/src/tools/ftrandom/ftrandom.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2007, 2008 by George Williams */
+/* Copyright (C) 2005, 2007, 2008, 2013 by George Williams */
/*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
@@ -184,7 +184,6 @@
{
FT_Library context;
FT_Face face;
- int i, num;
if ( FT_Init_FreeType( &context ) )
@@ -203,6 +202,9 @@
TestFace( face );
else
{
+ int i, num;
+
+
num = face->num_faces;
FT_Done_Face( face );
@@ -327,19 +329,20 @@
FindFonts( char** fontdirs,
char** extensions )
{
- DIR* examples;
- struct dirent* ent;
+ int i, max;
+ char buffer[1025];
+ struct stat statb;
- int i, max;
- char buffer[1025];
- struct stat statb;
-
max = 0;
fcnt = 0;
for ( i = 0; fontdirs[i] != NULL; ++i )
{
+ DIR* examples;
+ struct dirent* ent;
+
+
examples = opendir( fontdirs[i] );
if ( examples == NULL )
{
@@ -555,7 +558,6 @@
char** argv )
{
char **dirs, **exts;
- char *pt, *end;
int dcnt = 0, ecnt = 0, rset = false, allexts = false;
int i;
time_t now;
@@ -567,7 +569,10 @@
for ( i = 1; i < argc; ++i )
{
- pt = argv[i];
+ char* pt = argv[i];
+ char* end;
+
+
if ( pt[0] == '-' && pt[1] == '-' )
++pt;
@@ -633,12 +638,21 @@
}
if ( allexts )
+ {
+ free( exts );
exts = NULL;
+ }
else if ( ecnt == 0 )
+ {
+ free( exts );
exts = default_ext_list;
+ }
if ( dcnt == 0 )
+ {
+ free( dirs );
dirs = default_dir_list;
+ }
if ( testfile != NULL )
ExecuteTest( testfile ); /* This should never return */
--- a/src/tools/test_trig.c
+++ b/src/tools/test_trig.c
@@ -17,12 +17,15 @@
static void
test_cos( void )
{
- FT_Fixed f1, f2;
- double d1, d2;
- int i;
+ int i;
+
for ( i = 0; i < FT_ANGLE_2PI; i += 0x10000 )
{
+ FT_Fixed f1, f2;
+ double d1, d2;
+
+
f1 = FT_Cos(i);
d1 = f1/65536.0;
d2 = cos( i*SPI );
@@ -38,16 +41,18 @@
}
-
static void
test_sin( void )
{
- FT_Fixed f1, f2;
- double d1, d2;
- int i;
+ int i;
+
for ( i = 0; i < FT_ANGLE_2PI; i += 0x10000 )
{
+ FT_Fixed f1, f2;
+ double d1, d2;
+
+
f1 = FT_Sin(i);
d1 = f1/65536.0;
d2 = sin( i*SPI );
@@ -66,12 +71,15 @@
static void
test_tan( void )
{
- FT_Fixed f1, f2;
- double d1, d2;
- int i;
+ int i;
+
for ( i = 0; i < FT_ANGLE_PI2-0x2000000; i += 0x10000 )
{
+ FT_Fixed f1, f2;
+ double d1, d2;
+
+
f1 = FT_Tan(i);
d1 = f1/65536.0;
d2 = tan( i*SPI );
@@ -90,12 +98,16 @@
static void
test_atan2( void )
{
- FT_Fixed c2, s2;
- double l, a, c1, s1;
- int i, j;
+ int i;
+
for ( i = 0; i < FT_ANGLE_2PI; i += 0x10000 )
{
+ FT_Fixed c2, s2;
+ double l, a, c1, s1;
+ int j;
+
+
l = 5.0;
a = i*SPI;
@@ -117,16 +129,20 @@
}
}
+
static void
test_unit( void )
{
- FT_Vector v;
- double a, c1, s1;
- FT_Fixed c2, s2;
- int i;
+ int i;
+
for ( i = 0; i < FT_ANGLE_2PI; i += 0x10000 )
{
+ FT_Vector v;
+ double a, c1, s1;
+ FT_Fixed c2, s2;
+
+
FT_Vector_Unit( &v, i );
a = ( i*SPI );
c1 = cos(a);
@@ -150,12 +166,15 @@
static void
test_length( void )
{
- FT_Vector v;
- FT_Fixed l, l2;
- int i;
+ int i;
+
for ( i = 0; i < FT_ANGLE_2PI; i += 0x10000 )
{
+ FT_Vector v;
+ FT_Fixed l, l2;
+
+
l = (FT_Fixed)(500.0*65536.0);
v.x = (FT_Fixed)( l * cos( i*SPI ) );
v.y = (FT_Fixed)( l * sin( i*SPI ) );
@@ -174,13 +193,15 @@
static void
test_rotate( void )
{
- FT_Fixed c2, s2, c4, s4;
- FT_Vector v;
- double l, ra, a, c1, s1, cra, sra, c3, s3;
- int i, j, rotate;
+ int rotate;
+
for ( rotate = 0; rotate < FT_ANGLE_2PI; rotate += 0x10000 )
{
+ double ra, cra, sra;
+ int i;
+
+
ra = rotate*SPI;
cra = cos( ra );
sra = sin( ra );
@@ -187,6 +208,12 @@
for ( i = 0; i < FT_ANGLE_2PI; i += 0x10000 )
{
+ FT_Fixed c2, s2, c4, s4;
+ FT_Vector v;
+ double l, a, c1, s1, c3, s3;
+ int j;
+
+
l = 500.0;
a = i*SPI;
--- a/src/type1/t1afm.c
+++ b/src/type1/t1afm.c
@@ -122,7 +122,6 @@
start = (FT_Byte*)stream->cursor;
limit = (FT_Byte*)stream->limit;
- p = start;
/* Figure out how long the width table is. */
/* This info is a little-endian short at offset 99. */
--- a/src/type1/t1driver.c
+++ b/src/type1/t1driver.c
@@ -69,13 +69,13 @@
t1_get_name_index( T1_Face face,
FT_String* glyph_name )
{
- FT_Int i;
- FT_String* gname;
+ FT_Int i;
for ( i = 0; i < face->type1.num_glyphs; i++ )
{
- gname = face->type1.glyph_names[i];
+ FT_String* gname = face->type1.glyph_names[i];
+
if ( !ft_strcmp( glyph_name, gname ) )
return (FT_UInt)i;
--- a/src/type42/t42drivr.c
+++ b/src/type42/t42drivr.c
@@ -72,13 +72,13 @@
t42_get_name_index( T42_Face face,
FT_String* glyph_name )
{
- FT_Int i;
- FT_String* gname;
+ FT_Int i;
for ( i = 0; i < face->type1.num_glyphs; i++ )
{
- gname = face->type1.glyph_names[i];
+ FT_String* gname = face->type1.glyph_names[i];
+
if ( glyph_name[0] == gname[0] && !ft_strcmp( glyph_name, gname ) )
return (FT_UInt)ft_atol( (const char *)face->type1.charstrings[i] );
--- a/src/type42/t42objs.c
+++ b/src/type42/t42objs.c
@@ -93,7 +93,6 @@
if ( type1->encoding_type == T1_ENCODING_TYPE_ARRAY )
{
FT_Int charcode, idx, min_char, max_char;
- FT_Byte* char_name;
FT_Byte* glyph_name;
@@ -109,6 +108,9 @@
charcode = 0;
for ( ; charcode < loader.encoding_table.max_elems; charcode++ )
{
+ FT_Byte* char_name;
+
+
type1->encoding.char_index[charcode] = 0;
type1->encoding.char_name [charcode] = (char *)".notdef";