summaryrefslogtreecommitdiff
path: root/src/cache
diff options
context:
space:
mode:
authorWerner Lemberg <wl@gnu.org>2007-05-16 15:19:42 +0000
committerWerner Lemberg <wl@gnu.org>2007-05-16 15:19:42 +0000
commit95bc9d3a0713596bc83ddfc0d487488fefc4dc88 (patch)
treeb507f63a1fc89da4bd199a1cae5347e683466cc4 /src/cache
parent6ae7ff0607bd3e586d148705ab8cc52b5b1b91d3 (diff)
downloadfreetype2-95bc9d3a0713596bc83ddfc0d487488fefc4dc88.tar.gz
* src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init), src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea, tt_face_get_metrics): Fix type-punning issues.
Diffstat (limited to 'src/cache')
-rw-r--r--src/cache/ftccache.c12
-rw-r--r--src/cache/ftccache.h5
-rw-r--r--src/cache/ftcglyph.h15
3 files changed, 21 insertions, 11 deletions
diff --git a/src/cache/ftccache.c b/src/cache/ftccache.c
index 797d35f6d..f3e699c38 100644
--- a/src/cache/ftccache.c
+++ b/src/cache/ftccache.c
@@ -4,7 +4,7 @@
/* */
/* The FreeType internal cache interface (body). */
/* */
-/* Copyright 2000-2001, 2002, 2003, 2004, 2005, 2006 by */
+/* Copyright 2000-2001, 2002, 2003, 2004, 2005, 2006, 2007 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -46,7 +46,10 @@
ftc_node_mru_link( FTC_Node node,
FTC_Manager manager )
{
- FTC_MruNode_Prepend( (FTC_MruNode*)&manager->nodes_list,
+ void *nl = &manager->nodes_list;
+
+
+ FTC_MruNode_Prepend( (FTC_MruNode*)nl,
(FTC_MruNode)node );
manager->num_nodes++;
}
@@ -57,7 +60,10 @@
ftc_node_mru_unlink( FTC_Node node,
FTC_Manager manager )
{
- FTC_MruNode_Remove( (FTC_MruNode*)&manager->nodes_list,
+ void *nl = &manager->nodes_list;
+
+
+ FTC_MruNode_Remove( (FTC_MruNode*)nl,
(FTC_MruNode)node );
manager->num_nodes--;
}
diff --git a/src/cache/ftccache.h b/src/cache/ftccache.h
index 6c9b9b9e8..8c0a7c94f 100644
--- a/src/cache/ftccache.h
+++ b/src/cache/ftccache.h
@@ -4,7 +4,7 @@
/* */
/* FreeType internal cache interface (specification). */
/* */
-/* Copyright 2000-2001, 2002, 2003, 2004, 2005, 2006 by */
+/* Copyright 2000-2001, 2002, 2003, 2004, 2005, 2006, 2007 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -233,10 +233,11 @@ FT_BEGIN_HEADER
\
{ \
FTC_Manager _manager = _cache->manager; \
+ void* _nl = &_manager->nodes_list; \
\
\
if ( _node != _manager->nodes_list ) \
- FTC_MruNode_Up( (FTC_MruNode*)&_manager->nodes_list, \
+ FTC_MruNode_Up( (FTC_MruNode*)_nl, \
(FTC_MruNode)_node ); \
} \
goto _Ok; \
diff --git a/src/cache/ftcglyph.h b/src/cache/ftcglyph.h
index 1a5d12deb..87a4199bf 100644
--- a/src/cache/ftcglyph.h
+++ b/src/cache/ftcglyph.h
@@ -4,7 +4,7 @@
/* */
/* FreeType abstract glyph cache (specification). */
/* */
-/* Copyright 2000-2001, 2003, 2004, 2006 by */
+/* Copyright 2000-2001, 2003, 2004, 2006, 2007 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -300,11 +300,14 @@ FT_BEGIN_HEADER
#else /* !FTC_INLINE */
-#define FTC_GCACHE_LOOKUP_CMP( cache, famcmp, nodecmp, hash, \
- gindex, query, node, error ) \
- FT_BEGIN_STMNT \
- error = FTC_GCache_Lookup( FTC_GCACHE( cache ), hash, gindex, \
- FTC_GQUERY( query ), (FTC_Node*)&(node) ); \
+#define FTC_GCACHE_LOOKUP_CMP( cache, famcmp, nodecmp, hash, \
+ gindex, query, node, error ) \
+ FT_BEGIN_STMNT \
+ void* _n = &(node); \
+ \
+ \
+ error = FTC_GCache_Lookup( FTC_GCACHE( cache ), hash, gindex, \
+ FTC_GQUERY( query ), (FTC_Node*)_n ); \
FT_END_STMNT
#endif /* !FTC_INLINE */