diff --git a/ChangeLog b/ChangeLog index 437108dee..680ae9a96 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2010-10-24 suzuki toshiya + + [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 Change the type of FT_MEM_VAL() from FT_ULong to FT_PtrDist. diff --git a/include/freetype/ftcache.h b/include/freetype/ftcache.h index fe8664d0f..6af530622 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) ^ \