www.pudn.com > freetype.rar > ftexcept.h


#ifndef __FT_EXCEPT_H__ 
#define __FT_EXCEPT_H__ 
 
#include "ft2build.h" 
#include "ftcore.h" 
#include "freetype/internal/ftobjs.h" 
 
FT_BEGIN_HEADER 
 
 
 
 /* I can't find a better place for this for now */ 
 
//<<<<<<< ftexcept.h 
//======= 
 
/* the size of a cleanup chunk in bytes is FT_CLEANUP_CHUNK_SIZE*12 + 4 */ 
/* this must be a small power of 2 whenever possible..                  */ 
/*                                                                      */ 
/* with a value of 5, we have a byte size of 64 bytes per chunk..       */ 
/*                                                                      */ 
#define  FT_CLEANUP_CHUNK_SIZE   5 
 
 
 
  typedef struct FT_CleanupItemRec_ 
  { 
    FT_Pointer      item; 
    FT_CleanupFunc  item_func; 
    FT_Pointer      item_data; 
 
  } FT_CleanupItemRec, *FT_CleanupItem; 
 
  typedef struct FT_CleanupChunkRec_*   FT_CleanupChunk; 
   
  typedef struct FT_CleanupChunkRec_ 
  { 
    FT_CleanupChunk    link; 
    FT_CleanupItemRec  items[ FT_CLEANUP_CHUNK_SIZE ]; 
 
  } FT_CleanupChunkRec; 
 
 
  typedef struct FT_CleanupStackRec_ 
  { 
    FT_CleanupItem     top; 
    FT_CleanupItem     limit; 
    FT_CleanupChunk    chunk; 
    FT_CleanupChunkRec chunk_0;  /* avoids stupid dynamic allocation */ 
    FT_Memory          memory; 
 
  } FT_CleanupStackRec, *FT_CleanupStack; 
 
 
  FT_BASE( void ) 
  ft_cleanup_stack_push( FT_CleanupStack  stack, 
                         FT_Pointer       item, 
                         FT_CleanupFunc   item_func, 
                         FT_Pointer       item_data ); 
 
  FT_BASE( void ) 
  ft_cleanup_stack_pop( FT_CleanupStack   stack, 
                        FT_Int            destroy ); 
 
  FT_BASE( FT_CleanupItem ) 
  ft_cleanup_stack_peek( FT_CleanupStack  stack ); 
 
  FT_BASE( void ) 
  ft_xhandler_enter( FT_XHandler  xhandler, 
                     FT_Memory    memory );                          
 
  FT_BASE( void ) 
  ft_xhandler_exit( FT_XHandler  xhandler ); 
 
 
  FT_BASE( void ) 
  ft_cleanup_throw( FT_CleanupStack  stack, 
                    FT_Error         error ); 
 
//>>>>>>> 1.2 
FT_END_HEADER 
 
#endif /* __FT_EXCEPT_H__ */