[truetype] Remove integer to pointer conversion compiler warning. Problem reported by Alexei. * src/truetype/ttgload.c (load_truetype_glyph): Use a solution found in the glib library to fix the issue.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
diff --git a/ChangeLog b/ChangeLog
index e681f66..d663d9e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2015-11-09 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Remove integer to pointer conversion compiler warning.
+
+ Problem reported by Alexei.
+
+ * src/truetype/ttgload.c (load_truetype_glyph): Use a solution found
+ in the glib library to fix the issue.
+
2015-11-08 Behdad Esfahbod <behdad@behdad.org>
[sfnt] Accept version 3 of `EBLC' and `CBLC' tables also.
diff --git a/src/truetype/ttgload.c b/src/truetype/ttgload.c
index 9a8b458..c9d5716 100644
--- a/src/truetype/ttgload.c
+++ b/src/truetype/ttgload.c
@@ -1641,8 +1641,16 @@
FT_ULong ins_pos; /* position of composite instructions, if any */
+ /*
+ * We store the glyph index directly in the `node->data' pointer,
+ * following the glib solution (cf. macro `GUINT_TO_POINTER') with a
+ * double cast to make this portable. Note, however, that this needs
+ * pointers with a width of at least 32 bits.
+ */
+
/* check whether we already have a composite glyph with this index */
- if ( FT_List_Find( &loader->composites, (void*)glyph_index ) )
+ if ( FT_List_Find( &loader->composites,
+ (void*)(unsigned long)glyph_index ) )
{
FT_TRACE1(( "TT_Load_Composite_Glyph:"
" infinite recursion detected\n" ));
@@ -1656,7 +1664,7 @@
if ( FT_NEW( node ) )
goto Exit;
- node->data = (void*)glyph_index;
+ node->data = (void*)(unsigned long)glyph_index;
FT_List_Add( &loader->composites, node );
}