29 #include FT_TRUETYPE_TABLES_H
30 #include FT_TRUETYPE_TAGS_H
31 #include FT_GX_VALIDATE_H
32 #include FT_INTERNAL_OBJECTS_H
33 #include FT_SERVICE_GX_VALIDATE_H
47 #define FT_COMPONENT trace_gxvmodule
61 if ( error == GXV_Err_Table_Missing )
66 if (
FT_ALLOC( *table, *table_len ) )
76 #define GXV_TABLE_DECL( _sfnt ) \
77 FT_Byte* volatile _sfnt = NULL; \
78 FT_ULong len_ ## _sfnt = 0
80 #define GXV_TABLE_LOAD( _sfnt ) \
81 if ( ( FT_VALIDATE_ ## _sfnt ## _INDEX < table_count ) && \
82 ( gx_flags & FT_VALIDATE_ ## _sfnt ) ) \
84 error = gxv_load_table( face, TTAG_ ## _sfnt, \
85 &_sfnt, &len_ ## _sfnt ); \
90 #define GXV_TABLE_VALIDATE( _sfnt ) \
93 ft_validator_init( &valid, _sfnt, _sfnt + len_ ## _sfnt, \
94 FT_VALIDATE_DEFAULT ); \
95 if ( ft_setjmp( valid.jump_buffer ) == 0 ) \
96 gxv_ ## _sfnt ## _validate( _sfnt, face, &valid ); \
97 error = valid.error; \
102 #define GXV_TABLE_SET( _sfnt ) \
103 if ( FT_VALIDATE_ ## _sfnt ## _INDEX < table_count ) \
104 tables[FT_VALIDATE_ ## _sfnt ## _INDEX] = (FT_Bytes)_sfnt
132 for ( i = 0; i < table_count; i++ )
225 *ckern_table = ckern;
260 const char* service_id )
#define FT_ALLOC(ptr, size)
GLenum GLsizei GLenum GLenum const GLvoid * table
ft_service_list_lookup(FT_ServiceDesc service_descriptors, const char *service_id)
static const FT_Service_CKERNvalidateRec ckernvalid_interface
static FT_Error classic_kern_validate(FT_Face face, FT_UInt ckern_flags, FT_Bytes *ckern_table)
static FT_Pointer gxvalid_get_service(FT_Module module, const char *service_id)
#define GXV_TABLE_DECL(_sfnt)
FT_Module_Interface(* FT_Module_Requester)(FT_Module module, const char *name)
struct FT_ModuleRec_ FT_ModuleRec
#define FT_SERVICE_ID_CLASSICKERN_VALIDATE
static FT_Error gxv_validate(FT_Face face, FT_UInt gx_flags, FT_Bytes tables[FT_VALIDATE_GX_LENGTH], FT_UInt table_count)
gxv_kern_validate_classic(FT_Bytes table, FT_Face face, FT_Int dialect_flags, FT_Validator valid)
#define FT_VALIDATE_GX_LENGTH
#define FT_SERVICE_ID_GX_VALIDATE
#define GXV_TABLE_LOAD(_sfnt)
FT_Load_Sfnt_Table(FT_Face face, FT_ULong tag, FT_Long offset, FT_Byte *buffer, FT_ULong *length)
#define GXV_TABLE_VALIDATE(_sfnt)
void(* FT_Module_Destructor)(FT_Module module)
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
static const FT_Service_GXvalidateRec gxvalid_interface
FT_Error(* FT_Module_Constructor)(FT_Module module)
#define FT_FACE_MEMORY(x)
FT_CALLBACK_TABLE_DEF const FT_Module_Class gxv_module_class
#define FT_VALIDATE_CKERN
static FT_Error gxv_load_table(FT_Face face, FT_Tag tag, FT_Byte *volatile *table, FT_ULong *table_len)
ft_validator_init(FT_Validator valid, const FT_Byte *base, const FT_Byte *limit, FT_ValidationLevel level)
static const FT_ServiceDescRec gxvalid_services[]
#define GXV_TABLE_SET(_sfnt)
#define FT_CALLBACK_TABLE_DEF