X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=src%2Fftglue.h;h=e0fd1714e381b075e4553dc7e8f113e945c1525c;hb=082caefb6d5462c97f280b7037e3740b4865a244;hp=f526bf0a175934b58594a1216bfae500f6da7aab;hpb=824c7bf02515cde1cc562eb6a64b9857d03913fc;p=fontconfig.git diff --git a/src/ftglue.h b/src/ftglue.h index f526bf0..e0fd171 100644 --- a/src/ftglue.h +++ b/src/ftglue.h @@ -43,22 +43,18 @@ #ifndef __OPENTYPE_FTGLUE_H__ #define __OPENTYPE_FTGLUE_H__ +#include "fcint.h" + #include #include FT_FREETYPE_H FT_BEGIN_HEADER -/* utility macros */ -#define TT_Err_Ok FT_Err_Ok -#define TT_Err_Invalid_Argument FT_Err_Invalid_Argument -#define TT_Err_Invalid_Face_Handle FT_Err_Invalid_Face_Handle -#define TT_Err_Table_Missing FT_Err_Table_Missing - #define SET_ERR(c) ( (error = (c)) != 0 ) #ifndef FTGLUE_API -#define FTGLUE_API(x) extern x +#define FTGLUE_API(x) extern FcPrivate x #endif #ifndef FTGLUE_APIDEF @@ -71,9 +67,17 @@ FT_BEGIN_HEADER #define ACCESS_Frame(size) SET_ERR( ftglue_stream_frame_enter( stream, size ) ) #define FORGET_Frame() ftglue_stream_frame_exit( stream ) -#define GET_Byte() ftglue_stream_get_byte( stream ) -#define GET_Short() ftglue_stream_get_short( stream ) -#define GET_Long() ftglue_stream_get_long( stream ) +#define GET_Byte() (*stream->cursor++) +#define GET_Short() (stream->cursor += 2, (FT_Short)( \ + (*(((FT_Byte*)stream->cursor)-2) << 8) | \ + *(((FT_Byte*)stream->cursor)-1) \ + )) +#define GET_Long() (stream->cursor += 4, (FT_Long)( \ + (*(((FT_Byte*)stream->cursor)-4) << 24) | \ + (*(((FT_Byte*)stream->cursor)-3) << 16) | \ + (*(((FT_Byte*)stream->cursor)-2) << 8) | \ + *(((FT_Byte*)stream->cursor)-1) \ + )) #define GET_Char() ((FT_Char)GET_Byte()) #define GET_UShort() ((FT_UShort)GET_Short()) @@ -97,63 +101,11 @@ ftglue_stream_frame_enter( FT_Stream stream, FTGLUE_API( void ) ftglue_stream_frame_exit( FT_Stream stream ); -FTGLUE_API( FT_Byte ) -ftglue_stream_get_byte( FT_Stream stream ); - -FTGLUE_API( FT_Short ) -ftglue_stream_get_short( FT_Stream stream ); - -FTGLUE_API( FT_Long ) -ftglue_stream_get_long( FT_Stream stream ); - FTGLUE_API( FT_Error ) ftglue_face_goto_table( FT_Face face, FT_ULong tag, FT_Stream stream ); -/* memory macros used by the OpenType parser */ -#define ALLOC(_ptr,_size) \ - ( (_ptr) = ftglue_alloc( memory, _size, &error ), error != 0 ) - -#define REALLOC(_ptr,_oldsz,_newsz) \ - ( (_ptr) = ftglue_realloc( memory, (_ptr), (_oldsz), (_newsz), &error ), error != 0 ) - -#define FREE(_ptr) \ - do { \ - if ( (_ptr) ) \ - { \ - ftglue_free( memory, _ptr ); \ - _ptr = NULL; \ - } \ - } while (0) - -#define ALLOC_ARRAY(_ptr,_count,_type) \ - ALLOC(_ptr,(_count)*sizeof(_type)) - -#define REALLOC_ARRAY(_ptr,_oldcnt,_newcnt,_type) \ - REALLOC(_ptr,(_oldcnt)*sizeof(_type),(_newcnt)*sizeof(_type)) - -#define MEM_Copy(dest,source,count) memcpy( (char*)(dest), (const char*)(source), (size_t)(count) ) - - -FTGLUE_API( FT_Pointer ) -ftglue_alloc( FT_Memory memory, - FT_ULong size, - FT_Error *perror_ ); - -FTGLUE_API( FT_Pointer ) -ftglue_realloc( FT_Memory memory, - FT_Pointer block, - FT_ULong old_size, - FT_ULong new_size, - FT_Error *perror_ ); - -FTGLUE_API( void ) -ftglue_free( FT_Memory memory, - FT_Pointer block ); - -/* */ - FT_END_HEADER #endif /* __OPENTYPE_FTGLUE_H__ */