31#include FT_SFNT_NAMES_H
41#define FT_COMPONENT gxvjust
66#define GXV_JUST_DATA( a ) GXV_TABLE_DATA( just, a )
77 if ( gid < gxvalid->
face->num_glyphs )
80 GXV_TRACE((
"just table includes too large %s"
81 " GID=%d > %d (in maxp)\n",
94#ifdef GXV_LOAD_UNUSED_VARS
106#ifndef GXV_LOAD_UNUSED_VARS
107 p += 4 + 4 + 4 + 4 + 2 + 2;
118 if ( ( justClass & 0xFFFFFF80UL ) != 0 )
120 GXV_TRACE((
"just table includes non-zero value"
121 " in unused justClass higher bits"
122 " of WidthDeltaPair" ));
164 if (
limit <= wdc_end )
167 for (
i = 0;
p <= wdc_end;
i++ )
188#ifdef GXV_LOAD_UNUSED_VARS
199#ifdef GXV_LOAD_UNUSED_VARS
206 if ( lowerLimit >= upperLimit )
208 GXV_TRACE((
"just table includes invalid range spec:"
209 " lowerLimit(%d) > upperLimit(%d)\n" ));
213 for (
i = 0;
i < decomposedCount;
i++ )
251#ifdef GXV_LOAD_UNUSED_VARS
259#ifdef GXV_LOAD_UNUSED_VARS
267 if ( addGlyph != 0xFFFF )
296 if ( variantsAxis != 0x64756374L )
297 GXV_TRACE((
"variantsAxis 0x%08x is non default value",
300 if ( minimumLimit > noStretchValue )
301 GXV_TRACE((
"type4:minimumLimit 0x%08x > noStretchValue 0x%08x\n",
302 minimumLimit, noStretchValue ));
303 else if ( noStretchValue > maximumLimit )
304 GXV_TRACE((
"type4:noStretchValue 0x%08x > maximumLimit 0x%08x\n",
305 noStretchValue, maximumLimit ));
328 GXV_TRACE((
"type5: nonzero value 0x%04x in unused flags\n",
356 if ( ( actionClass & 0xFF80 ) != 0 )
359 if ( actionType == 0 )
361 else if ( actionType == 1 )
363 else if ( actionType == 2 )
365 else if ( actionType == 3 )
367 else if ( actionType == 4 )
369 else if ( actionType == 5 )
392 GXV_TRACE((
"actionCount = %d\n", actionCount ));
394 for (
i = 0;
i < actionCount;
i++ )
474#ifdef GXV_LOAD_UNUSED_VARS
488#ifndef GXV_LOAD_UNUSED_VARS
517 GXV_TRACE((
" justClassTable: coverage = 0x%04x (%s) ", coverage ));
518 if ( ( coverage & 0x4000 ) == 0 )
523 if ( subFeatureFlags )
524 GXV_TRACE((
" justClassTable: nonzero value (0x%08x)"
525 " in unused subFeatureFlags\n", subFeatureFlags ));
606 GXV_TRACE((
" (justClassTableOffset = 0x%04x)\n", justClassTableOffset ));
607 GXV_TRACE((
" (wdcTableOffset = 0x%04x)\n", wdcTableOffset ));
608 GXV_TRACE((
" (pcTableOffset = 0x%04x)\n", pcTableOffset ));
612 "just_LookupTable", odtect );
614 if ( wdcTableOffset )
617 gxvalid->
root->base + wdcTableOffset,
limit, gxvalid );
630 if ( justClassTableOffset )
633 gxvalid->
root->base + justClassTableOffset,
limit, gxvalid );
668 gxvalid->
root = ftvalid;
672 FT_TRACE3((
"validating `just' table\n" ));
683 "just header", odtect );
696 GXV_TRACE((
" (horizOffset = %d)\n", horizOffset ));
697 GXV_TRACE((
" (vertOffset = %d)\n", vertOffset ));
701 if ( 0 < horizOffset )
705 "horizJustData", odtect );
708 if ( 0 < vertOffset )
712 "vertJustData", odtect );
static const WCHAR version[]
#define FT_TRACE3(varformat)
#define FT_TRACE4(varformat)
#define FT_NEXT_USHORT(buffer)
#define FT_NEXT_LONG(buffer)
#define FT_NEXT_ULONG(buffer)
#define FT_INVALID_FORMAT
#define FT_INVALID_OFFSET
typedefFT_BEGIN_HEADER struct FT_ValidatorRec_ volatile * FT_Validator
#define FT_INVALID_GLYPH_ID
GLuint GLuint GLsizei count
GLenum GLuint GLint GLenum face
GLuint GLsizei GLsizei * length
GLuint GLdouble GLdouble GLint GLint order
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
gxv_StateTable_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
gxv_LookupTable_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
gxv_odtect_add_range(FT_Bytes start, FT_ULong length, const FT_String *name, GXV_odtect_Range odtect)
gxv_odtect_validate(GXV_odtect_Range odtect, GXV_Validator gxvalid)
#define GXV_ODTECT(n, odtect)
#define GXV_NAME_ENTER(name)
#define GXV_SET_ERR_IF_PARANOID(err)
#define GXV_ODTECT_INIT(odtect)
@ GXV_LOOKUPVALUE_UNSIGNED
#define IS_PARANOID_VALIDATION
#define GXV_LIMIT_CHECK(_count)
static void gxv_just_justData_lookuptable_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
static void gxv_just_check_max_gid(FT_UShort gid, const FT_String *msg_tag, GXV_Validator gxvalid)
struct GXV_just_DataRec_ GXV_just_DataRec
static void gxv_just_actSubrecord_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
struct GXV_just_DataRec_ * GXV_just_Data
static void gxv_just_pcLookupTable_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
static void gxv_just_wdcTable_LookupValue_validate(FT_UShort glyph, GXV_LookupValueCPtr value_p, GXV_Validator gxvalid)
static void gxv_just_actSubrecord_type2_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
static void gxv_just_classTable_entry_validate(FT_Byte state, FT_UShort flags, GXV_StateTable_GlyphOffsetCPtr glyphOffset_p, FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
static void gxv_just_actSubrecord_type1_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
gxv_just_validate(FT_Bytes table, FT_Face face, FT_Validator ftvalid)
static void gxv_just_actSubrecord_type0_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
static void gxv_just_justData_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
static void gxv_just_pcActionRecord_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
static void gxv_just_wdc_entry_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
static void gxv_just_widthDeltaClusters_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
static void gxv_just_actSubrecord_type4_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
static void gxv_just_postcompTable_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
static void gxv_just_pcTable_LookupValue_entry_validate(FT_UShort glyph, GXV_LookupValueCPtr value_p, GXV_Validator gxvalid)
static void gxv_just_wdp_entry_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
static void gxv_just_actSubrecord_type5_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
static void gxv_just_justClassTable_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
static UINT UINT LPWORD glyphs
GXV_StateTable_Entry_Validate_Func entry_validate_func
GXV_StateTable_Subtable_Setup_Func subtable_setup_func
GXV_GlyphOffset_Format entry_glyphoffset_fmt
GXV_StateTable_OptData_Load_Func optdata_load_func
GXV_StateTable_ValidatorRec statetable
GXV_Lookup_Value_Validate_Func lookupval_func
GXV_LookupValue_SignSpec lookupval_sign