#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.
274 {
277
280
283
287
289 {
294 };
295
296
297 gxvalid->
root = ftvalid;
300
301 FT_TRACE3((
"validating `bsln' table\n" ));
303
304
309
310
313
314
318
319 if ( defaultBaseline > 31 )
321
323
325
327 }
static const WCHAR version[]
#define FT_TRACE3(varformat)
#define FT_TRACE4(varformat)
#define FT_NEXT_USHORT(buffer)
#define FT_NEXT_ULONG(buffer)
#define FT_INVALID_FORMAT
static void gxv_bsln_parts_fmt1_validate(FT_Bytes tables, FT_Bytes limit, GXV_Validator gxvalid)
static void gxv_bsln_parts_fmt2_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)
static void gxv_bsln_parts_fmt3_validate(FT_Bytes tables, FT_Bytes limit, GXV_Validator gxvalid)
void(* GXV_Validate_Func)(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
#define GXV_LIMIT_CHECK(_count)
FT_UShort defaultBaseline
◆ gxv_feat_validate()
Definition at line 273 of file gxvfeat.c.
276 {
279
282
285
287
290
291
292 gxvalid->
root = ftvalid;
295
296 FT_TRACE3((
"validating `feat' table\n" ));
298
300
301
304
307
309 GXV_TRACE((
" (featureNameCount = %d)\n", featureNameCount ));
310
313 else
314 {
317
320 }
321
322 feat->
reserved_size += featureNameCount * ( 2 + 2 + 4 + 2 + 2 );
323
324 for ( last_feature = -1,
i = 0;
i < featureNameCount;
i++ )
325 {
327
330
332 p += 2 + 2 + 4 + 2 + 2;
333 }
334
336 }
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 GXV_SET_ERR_IF_PARANOID(err)
#define IS_PARANOID_VALIDATION
static void gxv_feat_name_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
#define GXV_FEAT_DATA(field)
INTERNETFEATURELIST feature
◆ gxv_just_validate()
Definition at line 644 of file gxvjust.c.
647 {
650
655
660
662
663
665
666 gxvalid->
root = ftvalid;
669
670 FT_TRACE3((
"validating `just' table\n" ));
672
674
681 "just header", odtect );
682
683
684
688
689
693
694 GXV_TRACE((
" (horizOffset = %d)\n", horizOffset ));
695 GXV_TRACE((
" (vertOffset = %d)\n", vertOffset ));
696
697
698
699 if ( 0 < horizOffset )
700 {
703 "horizJustData", odtect );
704 }
705
706 if ( 0 < vertOffset )
707 {
710 "vertJustData", odtect );
711 }
712
714
716 }
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_ODTECT_INIT(odtect)
static void gxv_just_justData_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
◆ gxv_kern_validate()
Definition at line 898 of file gxvkern.c.
901 {
903 }
GLenum GLuint GLint GLenum face
static void gxv_kern_validate_generic(FT_Bytes table, FT_Face face, FT_Bool classic_only, GXV_kern_Dialect dialect_request, FT_Validator ftvalid)
◆ gxv_kern_validate_classic()
◆ gxv_lcar_validate()
Definition at line 183 of file gxvlcar.c.
186 {
191
194
196
197
198 gxvalid->
root = ftvalid;
201
202 FT_TRACE3((
"validating `lcar' table\n" ));
204
208
211
214
219
221 }
#define FT_NEXT_LONG(buffer)
gxv_LookupTable_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
@ GXV_LOOKUPVALUE_UNSIGNED
static void gxv_lcar_LookupValue_validate(FT_UShort glyph, GXV_LookupValueCPtr value_p, GXV_Validator gxvalid)
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_LCAR_DATA(FIELD)
GXV_Lookup_Fmt4_Transit_Func lookupfmt4_trans
GXV_Lookup_Value_Validate_Func lookupval_func
GXV_LookupValue_SignSpec lookupval_sign
◆ gxv_mort_validate()
Definition at line 261 of file gxvmort.c.
264 {
272
273
274 gxvalid->
root = ftvalid;
277
278 FT_TRACE3((
"validating `mort' table\n" ));
280
284
287
288 for (
i = 0;
i < nChains;
i++ )
289 {
290 GXV_TRACE((
"validating chain %d/%d\n",
i + 1, nChains ));
294 }
295
297 }
#define GXV_32BIT_ALIGNMENT_VALIDATE(a)
static void gxv_mort_chain_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
◆ gxv_morx_validate()
Definition at line 161 of file gxvmorx.c.
164 {
172
173
174 gxvalid->
root = ftvalid;
176
177 FT_TRACE3((
"validating `morx' table\n" ));
179
183
186
187 for (
i = 0;
i < nChains;
i++ )
188 {
189 GXV_TRACE((
"validating chain %d/%d\n",
i + 1, nChains ));
193 }
194
196 }
static void gxv_morx_chain_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)
◆ gxv_opbd_validate()
Definition at line 162 of file gxvopbd.c.
165 {
172
174
175
176 gxvalid->
root = ftvalid;
179
180 FT_TRACE3((
"validating `opbd' table\n" ));
183
184
188
189
190
194
195
199
203
206
208 {
210 "found overlap between LookupTable and opbd_value array\n" ));
212 }
213
215 }
#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)
static void gxv_opbd_LookupValue_validate(FT_UShort glyph, GXV_LookupValueCPtr value_p, GXV_Validator gxvalid)
#define GXV_OPBD_DATA(FIELD)
◆ gxv_prop_validate()
Definition at line 257 of file gxvprop.c.
260 {
265
268
272
273
274 gxvalid->
root = ftvalid;
277
278 FT_TRACE3((
"validating `prop' table\n" ));
280
285
288 GXV_TRACE((
" defaultProp 0x%04x\n", defaultProp ));
289
290
291 if (
version != 0x00010000UL &&
294 {
295 GXV_TRACE((
" found unknown version\n" ));
297 }
298
299
300
302 {
303 GXV_TRACE((
" found unknown format\n" ));
305 }
306
308
310 {
311 FT_TRACE3((
"(format 0, no per-glyph properties, "
312 "remaining %d bytes are skipped)",
limit -
p ));
314 }
315
316
318
322
324
327 }
static void gxv_prop_property_validate(FT_UShort property, FT_UShort glyph, GXV_Validator gxvalid)
static void gxv_prop_LookupValue_validate(FT_UShort glyph, GXV_LookupValueCPtr value_p, GXV_Validator gxvalid)
#define GXV_PROP_DATA(field)
static GXV_LookupValueDesc gxv_prop_LookupFmt4_transit(FT_UShort relative_gindex, GXV_LookupValueCPtr base_value_p, FT_Bytes lookuptbl_limit, GXV_Validator gxvalid)
◆ gxv_trak_validate()
Definition at line 208 of file gxvtrak.c.
211 {
214
219
225
226
228
230 gxvalid->
root = ftvalid;
233
235
236 FT_TRACE3((
"validating `trak' table\n" ));
238
245
248 GXV_TRACE((
" (horizOffset = 0x%04x)\n", horizOffset ));
249 GXV_TRACE((
" (vertOffset = 0x%04x)\n", vertOffset ));
251
252
255
256
259
262
263
266
267
268 if ( 0 < horizOffset )
269 {
272 "horizJustData", odtect );
273 }
274
275 if ( 0 < vertOffset )
276 {
279 "vertJustData", odtect );
280 }
281
283
285 }
static void gxv_trak_trackData_validate(FT_Bytes table, FT_Bytes limit, GXV_Validator gxvalid)