Ignore:
Timestamp:
Jan 18, 2007, 5:32:59 PM (15 years ago)
Author:
Eugene Romanenko
Message:

freetype update to version 2.3.0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/poppler/freetype2/src/base/ftobjs.c

    r165 r182  
    55/*    The FreeType private base classes (body).                            */
    66/*                                                                         */
    7 /*  Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006 by                   */
     7/*  Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007 by             */
    88/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
    99/*                                                                         */
     
    13721372    FT_Long    rlen;
    13731373    int        is_cff;
     1374    FT_Long    face_index_in_resource = 0;
    13741375
    13751376
     
    14031404                                   sfnt_data,
    14041405                                   rlen,
    1405                                    face_index,
     1406                                   face_index_in_resource,
    14061407                                   is_cff ? "cff" : "truetype",
    14071408                                   aface );
     
    14451446                                      face_index, aface );
    14461447      FT_FREE( data_offsets );
     1448      /* POST exists in an LWFN providing a single face */
     1449      if ( !error )
     1450        (*aface)->num_faces = 1;
    14471451      return error;
    14481452    }
     
    14541458    if ( !error )
    14551459    {
     1460      FT_Long  face_index_internal = face_index % count;
     1461
     1462
    14561463      error = Mac_Read_sfnt_Resource( library, stream, data_offsets, count,
    1457                                       face_index, aface );
     1464                                      face_index_internal, aface );
    14581465      FT_FREE( data_offsets );
     1466      if ( !error )
     1467        (*aface)->num_faces = count;
    14591468    }
    14601469
     
    20812090                 FT_Size_Request  req,
    20822091                 FT_Bool          ignore_width,
    2083                  FT_ULong*        index )
     2092                 FT_ULong*        size_index )
    20842093  {
    20852094    FT_Int   i;
     
    21152124      if ( w == FT_PIX_ROUND( bsize->x_ppem ) || ignore_width )
    21162125      {
    2117         if ( index )
    2118           *index = (FT_ULong)i;
     2126        if ( size_index )
     2127          *size_index = (FT_ULong)i;
    21192128
    21202129        return FT_Err_Ok;
     
    37523761      library->generic.finalizer( library );
    37533762
    3754     /* Close all modules in the library */
     3763    /* Close all faces in the library.  If we don't do
     3764     * this, we can have some subtle memory leaks.
     3765     * Example:
     3766     *
     3767     *  - the cff font driver uses the pshinter module in cff_size_done
     3768     *  - if the pshinter module is destroyed before the cff font driver,
     3769     *    opened FT_Face objects managed by the driver are not properly
     3770     *    destroyed, resulting in a memory leak
     3771     */
     3772    {
     3773      FT_UInt  n;
     3774
     3775
     3776      for ( n = 0; n < library->num_modules; n++ )
     3777      {
     3778        FT_Module  module = library->modules[n];
     3779        FT_List    faces;
     3780
     3781
     3782        if ( ( module->clazz->module_flags & FT_MODULE_FONT_DRIVER ) == 0 )
     3783          continue;
     3784
     3785        faces = &FT_DRIVER(module)->faces_list;
     3786        while ( faces->head )
     3787          FT_Done_Face( FT_FACE( faces->head->data ) );
     3788      }
     3789    }
     3790
     3791    /* Close all other modules in the library */
    37553792#if 1
    37563793    /* XXX Modules are removed in the reversed order so that  */
Note: See TracChangeset for help on using the changeset viewer.