[cache] Hide internal macros incompatible with LLP64. FT_POINTER_TO_ULONG(), FTC_FACE_ID_HASH() and FTC_IMAGE_TYPE_HASH() are enclosed by FT_CONFIG_OPTION_OLD_INTERNALS and hidden from normal clients. For the history of these macros, see the investigation: http://lists.gnu.org/archive/html/freetype/2010-10/msg00022.html
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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
diff --git a/ChangeLog b/ChangeLog
index 437108d..680ae9a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
2010-10-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+ [cache] Hide internal macros incompatible with LLP64.
+
+ FT_POINTER_TO_ULONG(), FTC_FACE_ID_HASH() and
+ FTC_IMAGE_TYPE_HASH() are enclosed by
+ FT_CONFIG_OPTION_OLD_INTERNALS and hidden from
+ normal clients.
+
+ For the history of these macros, see the investigation:
+ http://lists.gnu.org/archive/html/freetype/2010-10/msg00022.html
+
+2010-10-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
Change the type of FT_MEM_VAL() from FT_ULong to FT_PtrDist.
On LLP64 platforms (e.g. Win64), unsigned long (32-bit)
diff --git a/include/freetype/ftcache.h b/include/freetype/ftcache.h
index fe8664d..6af5306 100644
--- a/include/freetype/ftcache.h
+++ b/include/freetype/ftcache.h
@@ -214,12 +214,17 @@ FT_BEGIN_HEADER
/* */
+#ifdef FT_CONFIG_OPTION_OLD_INTERNALS
+
+ /* these macros are incompatible with LLP64, should not be used */
+
#define FT_POINTER_TO_ULONG( p ) ( (FT_ULong)(FT_Pointer)(p) )
#define FTC_FACE_ID_HASH( i ) \
((FT_UInt32)(( FT_POINTER_TO_ULONG( i ) >> 3 ) ^ \
( FT_POINTER_TO_ULONG( i ) << 7 ) ) )
+#endif /* FT_CONFIG_OPTION_OLD_INTERNALS */
/*************************************************************************/
/*************************************************************************/
@@ -700,11 +705,17 @@ FT_BEGIN_HEADER
(d1)->width == (d2)->width && \
(d1)->flags == (d2)->flags )
+#ifdef FT_CONFIG_OPTION_OLD_INTERNALS
+
+ /* this macro is incompatible with LLP64, should not be used */
+
#define FTC_IMAGE_TYPE_HASH( d ) \
(FT_UFast)( FTC_FACE_ID_HASH( (d)->face_id ) ^ \
( (d)->width << 8 ) ^ (d)->height ^ \
( (d)->flags << 4 ) )
+#endif /* FT_CONFIG_OPTION_OLD_INTERNALS */
+
/*************************************************************************/
/* */
@@ -1096,6 +1107,7 @@ FT_BEGIN_HEADER
(f1)->pix_width == (f2)->pix_width && \
(f1)->pix_height == (f2)->pix_height )
+ /* this macro is incompatible with LLP64, should not be used */
#define FTC_FONT_HASH( f ) \
(FT_UInt32)( FTC_FACE_ID_HASH((f)->face_id) ^ \
((f)->pix_width << 8) ^ \