* src/*/*.c: Added many casts to make code more 64bit-safe.
diff --git a/ChangeLog b/ChangeLog
index caaf9ca..c80c152 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2001-03-10 Henrik Grubbström <grubba@roxen.com>
+
+ * src/*/*.c: Added many casts to make code more 64bit-safe.
+
2001-03-07 Werner Lemberg <wl@gnu.org>
* INSTALL, docs/BUILD: We need GNU make 3.78 or newer.
diff --git a/src/autohint/ahglobal.c b/src/autohint/ahglobal.c
index 63aab22..58c8122 100644
--- a/src/autohint/ahglobal.c
+++ b/src/autohint/ahglobal.c
@@ -157,7 +157,7 @@
/* segment; we first need to find in which contour the extremum */
/* lies, then see its previous and next points */
{
- FT_Int index = extremum - points;
+ FT_Int index = (FT_Int)( extremum - points );
FT_Int n;
FT_Int first, last, prev, next, end;
FT_Pos dist;
diff --git a/src/autohint/ahglyph.c b/src/autohint/ahglyph.c
index 9c6ebfd..1752dc7 100644
--- a/src/autohint/ahglyph.c
+++ b/src/autohint/ahglyph.c
@@ -1109,7 +1109,7 @@
}
}
- *p_num_edges = edge_limit - edges;
+ *p_num_edges = (FT_Int)( edge_limit - edges );
/*********************************************************************/
diff --git a/src/cache/ftcchunk.c b/src/cache/ftcchunk.c
index ec283b2..f7bb541 100644
--- a/src/cache/ftcchunk.c
+++ b/src/cache/ftcchunk.c
@@ -300,7 +300,7 @@
if ( !error )
{
/* good, now set the set index within the set object */
- cset->cset_index = node - lru->nodes;
+ cset->cset_index = (FT_UInt)( node - lru->nodes );
node->root.data = cset;
}
diff --git a/src/cache/ftcglyph.c b/src/cache/ftcglyph.c
index cc9a6d8..40633e6 100644
--- a/src/cache/ftcglyph.c
+++ b/src/cache/ftcglyph.c
@@ -327,7 +327,7 @@
if ( !error )
{
/* good, now set the gset index within the gset object */
- gset->gset_index = node - lru->nodes;
+ gset->gset_index = (FT_UInt)( node - lru->nodes );
node->root.data = gset;
}
diff --git a/src/cid/cidload.c b/src/cid/cidload.c
index 77abcee..057bead 100644
--- a/src/cid/cidload.c
+++ b/src/cid/cidload.c
@@ -332,7 +332,7 @@
while ( cur2 < limit && is_alpha( *cur2 ) )
cur2++;
- len = cur2 - cur;
+ len = (FT_Int)( cur2 - cur );
if ( len > 0 && len < 22 )
{
/* now compare the immediate name to the keyword table */
diff --git a/src/cid/cidparse.c b/src/cid/cidparse.c
index 31aeb87..c8cff5e 100644
--- a/src/cid/cidparse.c
+++ b/src/cid/cidparse.c
@@ -109,7 +109,7 @@
if ( p[0] == 'S' && strncmp( (char*)p, "StartData", 9 ) == 0 )
{
/* save offset of binary data after `StartData' */
- offset = top_position - ( limit - p ) + 10;
+ offset = (FT_ULong)( top_position - ( limit - p ) + 10 );
goto Found;
}
}
diff --git a/src/psaux/psobjs.c b/src/psaux/psobjs.c
index 3759d99..7546261 100644
--- a/src/psaux/psobjs.c
+++ b/src/psaux/psobjs.c
@@ -84,7 +84,7 @@
void shift_elements( PS_Table* table,
FT_Byte* old_base )
{
- FT_Long delta = table->block - old_base;
+ FT_Long delta = (FT_Long)( table->block - old_base );
FT_Byte** offset = table->elements;
FT_Byte** limit = offset + table->max_elems;
@@ -412,7 +412,7 @@
cur++;
}
- *pnum_tokens = cur - tokens;
+ *pnum_tokens = (FT_Int)( cur - tokens );
parser->cursor = old_cursor;
parser->limit = old_limit;
@@ -847,7 +847,7 @@
case t1_field_string:
{
FT_Memory memory = parser->memory;
- FT_UInt len = limit-cur;
+ FT_UInt len = (FT_UInt)( limit - cur );
if ( *(FT_String**)q )
diff --git a/src/psnames/psmodule.c b/src/psnames/psmodule.c
index 1de46c6..2160c5d 100644
--- a/src/psnames/psmodule.c
+++ b/src/psnames/psmodule.c
@@ -100,7 +100,7 @@
while ( *p && *p != '.' )
p++;
- len = p - glyph_name;
+ len = (int)( p - glyph_name );
if ( *p && len < 64 )
{
@@ -181,7 +181,7 @@
}
/* now, compress the table a bit */
- count = map - table->maps;
+ count = (FT_UInt)( map - table->maps );
if ( count > 0 && REALLOC( table->maps,
num_glyphs * sizeof ( PS_UniMap ),
diff --git a/src/raster/ftraster.c b/src/raster/ftraster.c
index 92e8b5b..993fd11 100644
--- a/src/raster/ftraster.c
+++ b/src/raster/ftraster.c
@@ -620,7 +620,7 @@
PProfile oldProfile;
- h = ras.top - ras.cProfile->offset;
+ h = (Long)( ras.top - ras.cProfile->offset );
if ( h < 0 )
{
@@ -1102,7 +1102,7 @@
else
{
e = CEILING( y1 );
- f1 = FRAC( y1 );
+ f1 = (Short)( FRAC( y1 ) );
e0 = e;
if ( f1 == 0 )
@@ -2189,7 +2189,7 @@
e1 = TRUNC( e1 );
c1 = (Short)( e1 >> 3 );
- f1 = e1 & 7;
+ f1 = (Short)( e1 & 7 );
if ( e1 >= 0 && e1 < ras.bWidth &&
ras.bTarget[ras.traceOfs + c1] & ( 0x80 >> f1 ) )
@@ -2215,7 +2215,7 @@
if ( e1 >= 0 && e1 < ras.bWidth )
{
c1 = (Short)( e1 >> 3 );
- f1 = e1 & 7;
+ f1 = (Short)( e1 & 7 );
if ( ras.gray_min_x > c1 ) ras.gray_min_x = c1;
if ( ras.gray_max_x < c1 ) ras.gray_max_x = c1;
@@ -2677,7 +2677,7 @@
Q = P->link;
bottom = (Short)P->start;
- top = (Short)P->start + P->height - 1;
+ top = (Short)( P->start + P->height - 1 );
if ( min_Y > bottom ) min_Y = bottom;
if ( max_Y < top ) max_Y = top;
@@ -2705,7 +2705,7 @@
while ( P )
{
- P->countL = P->start - min_Y;
+ P->countL = (UShort)( P->start - min_Y );
P = P->link;
}
diff --git a/src/sfnt/sfdriver.c b/src/sfnt/sfdriver.c
index 203115d..de30fbb 100644
--- a/src/sfnt/sfdriver.c
+++ b/src/sfnt/sfdriver.c
@@ -97,7 +97,7 @@
error = TT_Get_PS_Name( face, glyph_index, &gname );
if ( !error && buffer_max > 0 )
{
- FT_UInt len = strlen( gname );
+ FT_UInt len = (FT_UInt)( strlen( gname ) );
if ( len >= buffer_max )
diff --git a/src/sfnt/ttcmap.c b/src/sfnt/ttcmap.c
index 9698a80..2f2a53a 100644
--- a/src/sfnt/ttcmap.c
+++ b/src/sfnt/ttcmap.c
@@ -493,10 +493,10 @@
else
{
/* otherwise, we must use the glyphIdArray to do it */
- index1 = seg4->idRangeOffset / 2
- + ( charCode - seg4->startCount )
- + ( seg4 - cmap4->segments )
- - segCount;
+ index1 = (FT_UInt)( seg4->idRangeOffset / 2
+ + ( charCode - seg4->startCount )
+ + ( seg4 - cmap4->segments )
+ - segCount );
if ( index1 < (FT_UInt)cmap4->numGlyphId &&
cmap4->glyphIdArray[index1] != 0 )
diff --git a/src/smooth/ftgrays.c b/src/smooth/ftgrays.c
index 291e62e..83eb17e 100644
--- a/src/smooth/ftgrays.c
+++ b/src/smooth/ftgrays.c
@@ -1037,7 +1037,7 @@
for (;;)
{
- int len = limit - base;
+ int len = (int)( limit - base );
PCell i, j, pivot;
diff --git a/src/truetype/ttgload.c b/src/truetype/ttgload.c
index 8e56030..1464a8a 100644
--- a/src/truetype/ttgload.c
+++ b/src/truetype/ttgload.c
@@ -494,7 +494,8 @@
/* composite instructions, if we find some. */
/* we will process them later... */
/* */
- loader->ins_pos = FILE_Pos() + stream->cursor - stream->limit;
+ loader->ins_pos = (FT_ULong)( FILE_Pos() +
+ stream->cursor - stream->limit );
}
#endif
diff --git a/src/type1/t1afm.c b/src/type1/t1afm.c
index 970bc64..5f0457d 100644
--- a/src/type1/t1afm.c
+++ b/src/type1/t1afm.c
@@ -74,7 +74,7 @@
while ( IS_ALPHANUM( *p ) && p < limit )
p++;
- len = p - *start;
+ len = (FT_Int)( p - *start );
if ( len > 0 && len < 64 )
{
diff --git a/src/type1/t1driver.c b/src/type1/t1driver.c
index e933e88..b3a6c6c 100644
--- a/src/type1/t1driver.c
+++ b/src/type1/t1driver.c
@@ -55,7 +55,7 @@
if ( buffer_max > 0 )
{
- FT_UInt len = strlen( gname );
+ FT_UInt len = (FT_UInt)( strlen( gname ) );
if (len >= buffer_max)
diff --git a/src/type1/t1load.c b/src/type1/t1load.c
index e4187c9..bf70557 100644
--- a/src/type1/t1load.c
+++ b/src/type1/t1load.c
@@ -420,7 +420,7 @@
if (token->start[0] == '/')
token->start++;
- len = token->limit - token->start;
+ len = (FT_Int)( token->limit - token->start );
if ( len <= 0 )
{
error = T1_Err_Invalid_File_Format;
@@ -838,7 +838,7 @@
while ( cur2 < limit && is_alpha( *cur2 ) )
cur2++;
- len = cur2 - cur;
+ len = (FT_Int)( cur2 - cur );
if ( len > 0 )
{
if ( ALLOC( face->type1.font_name, len + 1 ) )
@@ -1039,7 +1039,7 @@
while ( cur2 < limit && is_alpha( *cur2 ) )
cur2++;
- len = cur2 - cur - 1;
+ len = (FT_Int)( cur2 - cur - 1 );
parser->root.error = T1_Add_Table( char_table, charcode,
cur + 1, len + 1 );
@@ -1244,7 +1244,7 @@
while ( cur2 < limit && is_alpha( *cur2 ) )
cur2++;
- len = cur2 - cur - 1;
+ len = (FT_Int)( cur2 - cur - 1 );
error = T1_Add_Table( name_table, n, cur + 1, len + 1 );
if ( error )
@@ -1467,7 +1467,7 @@
while ( cur2 < limit && is_alpha( *cur2 ) )
cur2++;
- len = cur2 - cur;
+ len = (FT_Int)( cur2 - cur );
if ( len > 0 && len < 22 )
{
{
diff --git a/src/type1/t1parse.c b/src/type1/t1parse.c
index 39d305c..4d9a767 100644
--- a/src/type1/t1parse.c
+++ b/src/type1/t1parse.c
@@ -377,7 +377,7 @@
/* dictionary. We overwrite the base dictionary for disk-based */
/* resources and allocate a new block otherwise */
- size = parser->base_len - ( cur - parser->base_dict);
+ size = (FT_Long)( parser->base_len - ( cur - parser->base_dict ) );
if ( parser->in_memory )
{
@@ -440,7 +440,7 @@
}
/* put a safeguard */
- parser->private_len = write - parser->private_dict;
+ parser->private_len = (FT_Int)( write - parser->private_dict );
*write++ = 0;
}
}
diff --git a/src/winfonts/winfnt.c b/src/winfonts/winfnt.c
index d1d5326..1097486 100644
--- a/src/winfonts/winfnt.c
+++ b/src/winfonts/winfnt.c
@@ -242,7 +242,8 @@
if ( type_id == 0x8008 )
{
font_count = count;
- font_offset = FILE_Pos() + 4 + ( stream->cursor - stream->limit );
+ font_offset = (FT_ULong)( FILE_Pos() + 4 +
+ ( stream->cursor - stream->limit ) );
break;
}