#include <ft2build.h>
#include "gxverror.h"
Go to the source code of this file.
|
FT_BEGIN_HEADER | gxv_feat_validate (FT_Bytes table, FT_Face face, FT_Validator valid) |
|
| gxv_bsln_validate (FT_Bytes table, FT_Face face, FT_Validator valid) |
|
| gxv_trak_validate (FT_Bytes table, FT_Face face, FT_Validator valid) |
|
| gxv_just_validate (FT_Bytes table, FT_Face face, FT_Validator valid) |
|
| gxv_mort_validate (FT_Bytes table, FT_Face face, FT_Validator valid) |
|
| gxv_morx_validate (FT_Bytes table, FT_Face face, FT_Validator valid) |
|
| gxv_kern_validate (FT_Bytes table, FT_Face face, FT_Validator valid) |
|
| gxv_kern_validate_classic (FT_Bytes table, FT_Face face, FT_Int dialect_flags, FT_Validator valid) |
|
| gxv_opbd_validate (FT_Bytes table, FT_Face face, FT_Validator valid) |
|
| gxv_prop_validate (FT_Bytes table, FT_Face face, FT_Validator valid) |
|
| gxv_lcar_validate (FT_Bytes table, FT_Face face, FT_Validator valid) |
|
◆ gxv_bsln_validate()
Definition at line 271 of file gxvbsln.c.
297 gxvalid->
root = ftvalid;
301 FT_TRACE3((
"validating `bsln' table\n" ));
319 if ( defaultBaseline > 31 )
static void gxv_bsln_parts_fmt3_validate(FT_Bytes tables, FT_Bytes limit, GXV_Validator gxvalid)
#define FT_INVALID_FORMAT
FT_UShort defaultBaseline
GLenum GLsizei GLenum GLenum const GLvoid * table
void(* GXV_Validate_Func)(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
static void gxv_bsln_parts_fmt1_validate(FT_Bytes tables, FT_Bytes limit, GXV_Validator gxvalid)
static void gxv_bsln_parts_fmt0_validate(FT_Bytes tables, FT_Bytes limit, GXV_Validator gxvalid)
#define FT_TRACE4(varformat)
static const WCHAR version[]
#define FT_NEXT_USHORT(buffer)
#define FT_TRACE3(varformat)
static void gxv_bsln_parts_fmt2_validate(FT_Bytes tables, FT_Bytes limit, GXV_Validator gxvalid)
#define FT_NEXT_ULONG(buffer)
#define GXV_LIMIT_CHECK(_count)
◆ gxv_feat_validate()
Definition at line 273 of file gxvfeat.c.
292 gxvalid->
root = ftvalid;
296 FT_TRACE3((
"validating `feat' table\n" ));
309 GXV_TRACE((
" (featureNameCount = %d)\n", featureNameCount ));
322 feat->
reserved_size += featureNameCount * ( 2 + 2 + 4 + 2 + 2 );
324 for ( last_feature = -1,
i = 0;
i < featureNameCount;
i++ )
332 p += 2 + 2 + 4 + 2 + 2;
INTERNETFEATURELIST feature
#define FT_INVALID_FORMAT
GLenum GLsizei GLenum GLenum const GLvoid * table
#define GXV_SET_ERR_IF_PARANOID(err)
#define FT_TRACE4(varformat)
#define GXV_FEAT_DATA(field)
#define FT_NEXT_USHORT(buffer)
static void gxv_feat_name_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
#define FT_TRACE3(varformat)
#define IS_PARANOID_VALIDATION
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
#define FT_NEXT_ULONG(buffer)
#define GXV_LIMIT_CHECK(_count)
◆ gxv_just_validate()
Definition at line 644 of file gxvjust.c.
666 gxvalid->
root = ftvalid;
670 FT_TRACE3((
"validating `just' table\n" ));
681 "just header", odtect );
694 GXV_TRACE((
" (horizOffset = %d)\n", horizOffset ));
695 GXV_TRACE((
" (vertOffset = %d)\n", vertOffset ));
699 if ( 0 < horizOffset )
703 "horizJustData", odtect );
706 if ( 0 < vertOffset )
710 "vertJustData", odtect );
#define FT_INVALID_FORMAT
GLenum GLsizei GLenum GLenum const GLvoid * table
#define GXV_ODTECT(n, odtect)
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
gxv_odtect_validate(GXV_odtect_Range odtect, GXV_Validator gxvalid)
#define FT_TRACE4(varformat)
static const WCHAR version[]
static void gxv_just_justData_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
#define GXV_ODTECT_INIT(odtect)
#define FT_NEXT_USHORT(buffer)
#define FT_TRACE3(varformat)
#define FT_NEXT_ULONG(buffer)
gxv_odtect_add_range(FT_Bytes start, FT_ULong length, const FT_String *name, GXV_odtect_Range odtect)
#define GXV_LIMIT_CHECK(_count)
◆ gxv_kern_validate()
Definition at line 898 of file gxvkern.c.
static void gxv_kern_validate_generic(FT_Bytes table, FT_Face face, FT_Bool classic_only, GXV_kern_Dialect dialect_request, FT_Validator ftvalid)
GLenum GLuint GLint GLenum face
◆ gxv_kern_validate_classic()
Definition at line 907 of file gxvkern.c.
enum GXV_kern_Dialect_ GXV_kern_Dialect
static void gxv_kern_validate_generic(FT_Bytes table, FT_Face face, FT_Bool classic_only, GXV_kern_Dialect dialect_request, FT_Validator ftvalid)
GLenum GLuint GLint GLenum face
Referenced by classic_kern_validate().
◆ gxv_lcar_validate()
Definition at line 183 of file gxvlcar.c.
198 gxvalid->
root = ftvalid;
202 FT_TRACE3((
"validating `lcar' table\n" ));
#define FT_NEXT_LONG(buffer)
#define FT_INVALID_FORMAT
GLenum GLsizei GLenum GLenum const GLvoid * table
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
GXV_LookupValue_SignSpec lookupval_sign
GXV_Lookup_Fmt4_Transit_Func lookupfmt4_trans
GXV_Lookup_Value_Validate_Func lookupval_func
gxv_LookupTable_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
#define FT_TRACE4(varformat)
static const WCHAR version[]
static void gxv_lcar_LookupValue_validate(FT_UShort glyph, GXV_LookupValueCPtr value_p, GXV_Validator gxvalid)
#define GXV_LCAR_DATA(FIELD)
#define FT_NEXT_USHORT(buffer)
#define FT_TRACE3(varformat)
static GXV_LookupValueDesc gxv_lcar_LookupFmt4_transit(FT_UShort relative_gindex, GXV_LookupValueCPtr base_value_p, FT_Bytes lookuptbl_limit, GXV_Validator gxvalid)
#define GXV_LIMIT_CHECK(_count)
◆ gxv_mort_validate()
Definition at line 261 of file gxvmort.c.
274 gxvalid->
root = ftvalid;
278 FT_TRACE3((
"validating `mort' table\n" ));
288 for (
i = 0;
i < nChains;
i++ )
290 GXV_TRACE((
"validating chain %d/%d\n",
i + 1, nChains ));
#define FT_INVALID_FORMAT
GLenum GLsizei GLenum GLenum const GLvoid * table
#define FT_TRACE4(varformat)
static const WCHAR version[]
static void gxv_mort_chain_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
#define GXV_32BIT_ALIGNMENT_VALIDATE(a)
#define FT_TRACE3(varformat)
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
#define FT_NEXT_ULONG(buffer)
#define GXV_LIMIT_CHECK(_count)
◆ gxv_morx_validate()
Definition at line 161 of file gxvmorx.c.
174 gxvalid->
root = ftvalid;
177 FT_TRACE3((
"validating `morx' table\n" ));
187 for (
i = 0;
i < nChains;
i++ )
189 GXV_TRACE((
"validating chain %d/%d\n",
i + 1, nChains ));
static void gxv_morx_chain_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
#define FT_INVALID_FORMAT
GLenum GLsizei GLenum GLenum const GLvoid * table
#define FT_TRACE4(varformat)
static const WCHAR version[]
#define GXV_32BIT_ALIGNMENT_VALIDATE(a)
#define FT_TRACE3(varformat)
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
#define FT_NEXT_ULONG(buffer)
#define GXV_LIMIT_CHECK(_count)
◆ gxv_opbd_validate()
Definition at line 162 of file gxvopbd.c.
176 gxvalid->
root = ftvalid;
180 FT_TRACE3((
"validating `opbd' table\n" ));
210 "found overlap between LookupTable and opbd_value array\n" ));
#define FT_INVALID_FORMAT
GLenum GLsizei GLenum GLenum const GLvoid * table
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
GXV_LookupValue_SignSpec lookupval_sign
GXV_Lookup_Fmt4_Transit_Func lookupfmt4_trans
GXV_Lookup_Value_Validate_Func lookupval_func
gxv_LookupTable_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
#define FT_TRACE4(varformat)
static const WCHAR version[]
#define GXV_OPBD_DATA(FIELD)
static void gxv_opbd_LookupValue_validate(FT_UShort glyph, GXV_LookupValueCPtr value_p, GXV_Validator gxvalid)
#define FT_NEXT_USHORT(buffer)
#define FT_TRACE3(varformat)
#define FT_INVALID_OFFSET
static GXV_LookupValueDesc gxv_opbd_LookupFmt4_transit(FT_UShort relative_gindex, GXV_LookupValueCPtr base_value_p, FT_Bytes lookuptbl_limit, GXV_Validator gxvalid)
#define FT_NEXT_ULONG(buffer)
#define GXV_LIMIT_CHECK(_count)
◆ gxv_prop_validate()
Definition at line 257 of file gxvprop.c.
274 gxvalid->
root = ftvalid;
278 FT_TRACE3((
"validating `prop' table\n" ));
288 GXV_TRACE((
" defaultProp 0x%04x\n", defaultProp ));
291 if (
version != 0x00010000UL &&
295 GXV_TRACE((
" found unknown version\n" ));
303 GXV_TRACE((
" found unknown format\n" ));
311 FT_TRACE3((
"(format 0, no per-glyph properties, " 312 "remaining %d bytes are skipped)",
limit -
p ));
static void gxv_prop_property_validate(FT_UShort property, FT_UShort glyph, GXV_Validator gxvalid)
#define FT_NEXT_LONG(buffer)
#define FT_INVALID_FORMAT
#define GXV_PROP_DATA(field)
GLenum GLsizei GLenum GLenum const GLvoid * table
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
GXV_LookupValue_SignSpec lookupval_sign
GXV_Lookup_Fmt4_Transit_Func lookupfmt4_trans
GXV_Lookup_Value_Validate_Func lookupval_func
gxv_LookupTable_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
#define FT_TRACE4(varformat)
static const WCHAR version[]
static void gxv_prop_LookupValue_validate(FT_UShort glyph, GXV_LookupValueCPtr value_p, GXV_Validator gxvalid)
#define FT_NEXT_USHORT(buffer)
#define FT_TRACE3(varformat)
static GXV_LookupValueDesc gxv_prop_LookupFmt4_transit(FT_UShort relative_gindex, GXV_LookupValueCPtr base_value_p, FT_Bytes lookuptbl_limit, GXV_Validator gxvalid)
#define GXV_LIMIT_CHECK(_count)
◆ gxv_trak_validate()
Definition at line 208 of file gxvtrak.c.
230 gxvalid->
root = ftvalid;
236 FT_TRACE3((
"validating `trak' table\n" ));
248 GXV_TRACE((
" (horizOffset = 0x%04x)\n", horizOffset ));
249 GXV_TRACE((
" (vertOffset = 0x%04x)\n", vertOffset ));
268 if ( 0 < horizOffset )
272 "horizJustData", odtect );
275 if ( 0 < vertOffset )
279 "vertJustData", odtect );
#define FT_INVALID_FORMAT
GLenum GLsizei GLenum GLenum const GLvoid * table
#define GXV_ODTECT(n, odtect)
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
gxv_odtect_validate(GXV_odtect_Range odtect, GXV_Validator gxvalid)
#define FT_TRACE4(varformat)
static const WCHAR version[]
#define GXV_32BIT_ALIGNMENT_VALIDATE(a)
#define GXV_ODTECT_INIT(odtect)
#define FT_NEXT_USHORT(buffer)
static void gxv_trak_trackData_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
#define FT_TRACE3(varformat)
#define FT_NEXT_ULONG(buffer)
gxv_odtect_add_range(FT_Bytes start, FT_ULong length, const FT_String *name, GXV_odtect_Range odtect)
#define GXV_LIMIT_CHECK(_count)