misc/libfreetype/src/base/ftotval.c
changeset 5172 88f2e05288ba
equal deleted inserted replaced
5171:f9283dc4860d 5172:88f2e05288ba
       
     1 /***************************************************************************/
       
     2 /*                                                                         */
       
     3 /*  ftotval.c                                                              */
       
     4 /*                                                                         */
       
     5 /*    FreeType API for validating OpenType tables (body).                  */
       
     6 /*                                                                         */
       
     7 /*  Copyright 2004, 2006, 2008, 2010 by                                    */
       
     8 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
       
     9 /*                                                                         */
       
    10 /*  This file is part of the FreeType project, and may only be used,       */
       
    11 /*  modified, and distributed under the terms of the FreeType project      */
       
    12 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
       
    13 /*  this file you indicate that you have read the license and              */
       
    14 /*  understand and accept it fully.                                        */
       
    15 /*                                                                         */
       
    16 /***************************************************************************/
       
    17 
       
    18 #include <ft2build.h>
       
    19 #include FT_INTERNAL_OBJECTS_H
       
    20 #include FT_SERVICE_OPENTYPE_VALIDATE_H
       
    21 #include FT_OPENTYPE_VALIDATE_H
       
    22 
       
    23 
       
    24   /* documentation is in ftotval.h */
       
    25 
       
    26   FT_EXPORT_DEF( FT_Error )
       
    27   FT_OpenType_Validate( FT_Face    face,
       
    28                         FT_UInt    validation_flags,
       
    29                         FT_Bytes  *BASE_table,
       
    30                         FT_Bytes  *GDEF_table,
       
    31                         FT_Bytes  *GPOS_table,
       
    32                         FT_Bytes  *GSUB_table,
       
    33                         FT_Bytes  *JSTF_table )
       
    34   {
       
    35     FT_Service_OTvalidate  service;
       
    36     FT_Error               error;
       
    37 
       
    38 
       
    39     if ( !face )
       
    40     {
       
    41       error = FT_Err_Invalid_Face_Handle;
       
    42       goto Exit;
       
    43     }
       
    44 
       
    45     if ( !( BASE_table &&
       
    46             GDEF_table &&
       
    47             GPOS_table &&
       
    48             GSUB_table &&
       
    49             JSTF_table ) )
       
    50     {
       
    51       error = FT_Err_Invalid_Argument;
       
    52       goto Exit;
       
    53     }
       
    54 
       
    55     FT_FACE_FIND_GLOBAL_SERVICE( face, service, OPENTYPE_VALIDATE );
       
    56 
       
    57     if ( service )
       
    58       error = service->validate( face,
       
    59                                  validation_flags,
       
    60                                  BASE_table,
       
    61                                  GDEF_table,
       
    62                                  GPOS_table,
       
    63                                  GSUB_table,
       
    64                                  JSTF_table );
       
    65     else
       
    66       error = FT_Err_Unimplemented_Feature;
       
    67 
       
    68   Exit:
       
    69     return error;
       
    70   }
       
    71 
       
    72 
       
    73   FT_EXPORT_DEF( void )
       
    74   FT_OpenType_Free( FT_Face   face,
       
    75                     FT_Bytes  table )
       
    76   {
       
    77     FT_Memory  memory;
       
    78 
       
    79 
       
    80     if ( !face )
       
    81       return;
       
    82 
       
    83     memory = FT_FACE_MEMORY( face );
       
    84 
       
    85     FT_FREE( table );
       
    86   }
       
    87 
       
    88 
       
    89 /* END */