亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ftmemory.h

?? 可以在hge引擎中顯示中文字體
?? H
字號:
/***************************************************************************/
/*                                                                         */
/*  ftmemory.h                                                             */
/*                                                                         */
/*    The FreeType memory management macros (specification).               */
/*                                                                         */
/*  Copyright 1996-2001, 2002, 2004, 2005, 2006, 2007 by                   */
/*  David Turner, Robert Wilhelm, and Werner Lemberg                       */
/*                                                                         */
/*  This file is part of the FreeType project, and may only be used,       */
/*  modified, and distributed under the terms of the FreeType project      */
/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
/*  this file you indicate that you have read the license and              */
/*  understand and accept it fully.                                        */
/*                                                                         */
/***************************************************************************/


#ifndef __FTMEMORY_H__
#define __FTMEMORY_H__


#include <ft2build.h>
#include FT_CONFIG_CONFIG_H
#include FT_TYPES_H


FT_BEGIN_HEADER


  /*************************************************************************/
  /*                                                                       */
  /* <Macro>                                                               */
  /*    FT_SET_ERROR                                                       */
  /*                                                                       */
  /* <Description>                                                         */
  /*    This macro is used to set an implicit `error' variable to a given  */
  /*    expression's value (usually a function call), and convert it to a  */
  /*    boolean which is set whenever the value is != 0.                   */
  /*                                                                       */
#undef  FT_SET_ERROR
#define FT_SET_ERROR( expression ) \
          ( ( error = (expression) ) != 0 )



  /*************************************************************************/
  /*************************************************************************/
  /*************************************************************************/
  /****                                                                 ****/
  /****                                                                 ****/
  /****                           M E M O R Y                           ****/
  /****                                                                 ****/
  /****                                                                 ****/
  /*************************************************************************/
  /*************************************************************************/
  /*************************************************************************/


  /*
   *  C++ refuses to handle statements like p = (void*)anything; where `p'
   *  is a typed pointer.  Since we don't have a `typeof' operator in
   *  standard C++, we have to use ugly casts.
   */

#ifdef __cplusplus
#define FT_ASSIGNP( p, val )  *((void**)&(p)) = (val)
#else
#define FT_ASSIGNP( p, val )  (p) = (val)
#endif



#ifdef FT_DEBUG_MEMORY

  FT_BASE( const char* )  _ft_debug_file;
  FT_BASE( long )         _ft_debug_lineno;

#define FT_DEBUG_INNER( exp )  ( _ft_debug_file   = __FILE__, \
                                 _ft_debug_lineno = __LINE__, \
                                 (exp) )

#define FT_ASSIGNP_INNER( p, exp )  ( _ft_debug_file   = __FILE__, \
                                      _ft_debug_lineno = __LINE__, \
                                      FT_ASSIGNP( p, exp ) )

#else /* !FT_DEBUG_MEMORY */

#define FT_DEBUG_INNER( exp )       (exp)
#define FT_ASSIGNP_INNER( p, exp )  FT_ASSIGNP( p, exp )

#endif /* !FT_DEBUG_MEMORY */


  /*
   *  The allocation functions return a pointer, and the error code
   *  is written to through the `p_error' parameter.  See below for
   *  for documentation.
   */

  FT_BASE( FT_Pointer )
  ft_mem_alloc( FT_Memory  memory,
                FT_Long    size,
                FT_Error  *p_error );

  FT_BASE( FT_Pointer )
  ft_mem_qalloc( FT_Memory  memory,
                 FT_Long    size,
                 FT_Error  *p_error );

  FT_BASE( FT_Pointer )
  ft_mem_realloc( FT_Memory  memory,
                  FT_Long    item_size,
                  FT_Long    cur_count,
                  FT_Long    new_count,
                  void*      block,
                  FT_Error  *p_error );

  FT_BASE( FT_Pointer )
  ft_mem_qrealloc( FT_Memory  memory,
                   FT_Long    item_size,
                   FT_Long    cur_count,
                   FT_Long    new_count,
                   void*      block,
                   FT_Error  *p_error );

  FT_BASE( void )
  ft_mem_free( FT_Memory    memory,
               const void*  P );


#define FT_MEM_ALLOC( ptr, size )                                         \
          FT_ASSIGNP_INNER( ptr, ft_mem_alloc( memory, (size), &error ) )

#define FT_MEM_FREE( ptr )                \
          FT_BEGIN_STMNT                  \
            ft_mem_free( memory, (ptr) ); \
            (ptr) = NULL;                 \
          FT_END_STMNT

#define FT_MEM_NEW( ptr )                        \
          FT_MEM_ALLOC( ptr, sizeof ( *(ptr) ) )

#define FT_MEM_REALLOC( ptr, cursz, newsz )                        \
          FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, 1,        \
                                                 (cursz), (newsz), \
                                                 (ptr), &error ) )

#define FT_MEM_QALLOC( ptr, size )                                         \
          FT_ASSIGNP_INNER( ptr, ft_mem_qalloc( memory, (size), &error ) )

#define FT_MEM_QNEW( ptr )                        \
          FT_MEM_QALLOC( ptr, sizeof ( *(ptr) ) )

#define FT_MEM_QREALLOC( ptr, cursz, newsz )                         \
          FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, 1,        \
                                                  (cursz), (newsz), \
                                                  (ptr), &error ) )

#define FT_MEM_QRENEW_ARRAY( ptr, cursz, newsz )                             \
          FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, sizeof ( *(ptr) ), \
                                                  (cursz), (newsz),          \
                                                  (ptr), &error ) )

#define FT_MEM_ALLOC_MULT( ptr, count, item_size )                    \
          FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, (item_size), \
                                                 0, (count),          \
                                                 NULL, &error ) )

#define FT_MEM_REALLOC_MULT( ptr, oldcnt, newcnt, itmsz )            \
          FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, (itmsz),    \
                                                 (oldcnt), (newcnt), \
                                                 (ptr), &error ) )

#define FT_MEM_QALLOC_MULT( ptr, count, item_size )                    \
          FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, (item_size), \
                                                  0, (count),          \
                                                  NULL, &error ) )

#define FT_MEM_QREALLOC_MULT( ptr, oldcnt, newcnt, itmsz)             \
          FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, (itmsz),    \
                                                  (oldcnt), (newcnt), \
                                                  (ptr), &error ) )


#define FT_MEM_SET_ERROR( cond )  ( (cond), error != 0 )


#define FT_MEM_SET( dest, byte, count )     ft_memset( dest, byte, count )

#define FT_MEM_COPY( dest, source, count )  ft_memcpy( dest, source, count )

#define FT_MEM_MOVE( dest, source, count )  ft_memmove( dest, source, count )


#define FT_MEM_ZERO( dest, count )  FT_MEM_SET( dest, 0, count )

#define FT_ZERO( p )                FT_MEM_ZERO( p, sizeof ( *(p) ) )


#define FT_ARRAY_ZERO( dest, count )                        \
          FT_MEM_ZERO( dest, (count) * sizeof ( *(dest) ) )

#define FT_ARRAY_COPY( dest, source, count )                        \
          FT_MEM_COPY( dest, source, (count) * sizeof ( *(dest) ) )

#define FT_ARRAY_MOVE( dest, source, count )                        \
          FT_MEM_MOVE( dest, source, (count) * sizeof ( *(dest) ) )


  /*
   *  Return the maximum number of addressable elements in an array.
   *  We limit ourselves to INT_MAX, rather than UINT_MAX, to avoid
   *  any problems.
   */
#define FT_ARRAY_MAX( ptr )           ( FT_INT_MAX / sizeof ( *(ptr) ) )

#define FT_ARRAY_CHECK( ptr, count )  ( (count) <= FT_ARRAY_MAX( ptr ) )


  /*************************************************************************/
  /*                                                                       */
  /* The following functions macros expect that their pointer argument is  */
  /* _typed_ in order to automatically compute array element sizes.        */
  /*                                                                       */

#define FT_MEM_NEW_ARRAY( ptr, count )                                      \
          FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, sizeof ( *(ptr) ), \
                                                 0, (count),                \
                                                 NULL, &error ) )

#define FT_MEM_RENEW_ARRAY( ptr, cursz, newsz )                             \
          FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, sizeof ( *(ptr) ), \
                                                 (cursz), (newsz),          \
                                                 (ptr), &error ) )

#define FT_MEM_QNEW_ARRAY( ptr, count )                                      \
          FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, sizeof ( *(ptr) ), \
                                                  0, (count),                \
                                                  NULL, &error ) )

#define FT_MEM_QRENEW_ARRAY( ptr, cursz, newsz )                             \
          FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, sizeof ( *(ptr) ), \
                                                  (cursz), (newsz),          \
                                                  (ptr), &error ) )


#define FT_ALLOC( ptr, size )                           \
          FT_MEM_SET_ERROR( FT_MEM_ALLOC( ptr, size ) )

#define FT_REALLOC( ptr, cursz, newsz )                           \
          FT_MEM_SET_ERROR( FT_MEM_REALLOC( ptr, cursz, newsz ) )

#define FT_ALLOC_MULT( ptr, count, item_size )                           \
          FT_MEM_SET_ERROR( FT_MEM_ALLOC_MULT( ptr, count, item_size ) )

#define FT_REALLOC_MULT( ptr, oldcnt, newcnt, itmsz )              \
          FT_MEM_SET_ERROR( FT_MEM_REALLOC_MULT( ptr, oldcnt,      \
                                                 newcnt, itmsz ) )

#define FT_QALLOC( ptr, size )                           \
          FT_MEM_SET_ERROR( FT_MEM_QALLOC( ptr, size ) )

#define FT_QREALLOC( ptr, cursz, newsz )                           \
          FT_MEM_SET_ERROR( FT_MEM_QREALLOC( ptr, cursz, newsz ) )

#define FT_QALLOC_MULT( ptr, count, item_size )                           \
          FT_MEM_SET_ERROR( FT_MEM_QALLOC_MULT( ptr, count, item_size ) )

#define FT_QREALLOC_MULT( ptr, oldcnt, newcnt, itmsz )              \
          FT_MEM_SET_ERROR( FT_MEM_QREALLOC_MULT( ptr, oldcnt,      \
                                                  newcnt, itmsz ) )

#define FT_FREE( ptr )  FT_MEM_FREE( ptr )

#define FT_NEW( ptr )  FT_MEM_SET_ERROR( FT_MEM_NEW( ptr ) )

#define FT_NEW_ARRAY( ptr, count )                           \
          FT_MEM_SET_ERROR( FT_MEM_NEW_ARRAY( ptr, count ) )

#define FT_RENEW_ARRAY( ptr, curcnt, newcnt )                           \
          FT_MEM_SET_ERROR( FT_MEM_RENEW_ARRAY( ptr, curcnt, newcnt ) )

#define FT_QNEW( ptr )                           \
          FT_MEM_SET_ERROR( FT_MEM_QNEW( ptr ) )

#define FT_QNEW_ARRAY( ptr, count )                          \
          FT_MEM_SET_ERROR( FT_MEM_NEW_ARRAY( ptr, count ) )

#define FT_QRENEW_ARRAY( ptr, curcnt, newcnt )                          \
          FT_MEM_SET_ERROR( FT_MEM_RENEW_ARRAY( ptr, curcnt, newcnt ) )


#ifdef FT_CONFIG_OPTION_OLD_INTERNALS

  FT_BASE( FT_Error )
  FT_Alloc( FT_Memory  memory,
            FT_Long    size,
            void*     *P );

  FT_BASE( FT_Error )
  FT_QAlloc( FT_Memory  memory,
             FT_Long    size,
             void*     *p );

  FT_BASE( FT_Error )
  FT_Realloc( FT_Memory  memory,
              FT_Long    current,
              FT_Long    size,
              void*     *P );

  FT_BASE( FT_Error )
  FT_QRealloc( FT_Memory  memory,
               FT_Long    current,
               FT_Long    size,
               void*     *p );

  FT_BASE( void )
  FT_Free( FT_Memory  memory,
           void*     *P );

#endif /* FT_CONFIG_OPTION_OLD_INTERNALS */


  FT_BASE( FT_Pointer )
  ft_mem_strdup( FT_Memory    memory,
                 const char*  str,
                 FT_Error    *p_error );

  FT_BASE( FT_Pointer )
  ft_mem_dup( FT_Memory    memory,
              const void*  address,
              FT_ULong     size,
              FT_Error    *p_error );

#define FT_MEM_STRDUP( dst, str )                                     \
          (dst) = ft_mem_strdup( memory, (const char*)(str), &error )

#define FT_STRDUP( dst, str )                           \
          FT_MEM_SET_ERROR( FT_MEM_STRDUP( dst, str ) )

#define FT_MEM_DUP( dst, address, size )                                    \
          (dst) = ft_mem_dup( memory, (address), (FT_ULong)(size), &error )

#define FT_DUP( dst, address, size )                           \
          FT_MEM_SET_ERROR( FT_MEM_DUP( dst, address, size ) )


  /* Return >= 1 if a truncation occurs.            */
  /* Return 0 if the source string fits the buffer. */
  /* This is *not* the same as strlcpy().           */
  FT_BASE( FT_Int )
  ft_mem_strcpyn( char*        dst,
                  const char*  src,
                  FT_ULong     size );

#define FT_STRCPYN( dst, src, size )                                         \
          ft_mem_strcpyn( (char*)dst, (const char*)(src), (FT_ULong)(size) )

 /* */


FT_END_HEADER

#endif /* __FTMEMORY_H__ */


/* END */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产午夜久久久久| 蜜臀av性久久久久av蜜臀妖精| 亚洲精品中文在线观看| 五月激情六月综合| 成人精品小蝌蚪| 制服丝袜国产精品| 国产精品久久毛片| 国产一区欧美一区| 欧美午夜免费电影| 国产精品的网站| 久久99久久精品| 欧美性极品少妇| 日韩毛片在线免费观看| 国内精品视频666| 欧美日韩亚洲不卡| 亚洲另类一区二区| 成人性色生活片| 亚洲色图制服诱惑 | 欧美国产1区2区| 天天综合网 天天综合色| 成人高清免费在线播放| 久久久久国产精品麻豆| 激情综合亚洲精品| 日韩欧美高清dvd碟片| 无吗不卡中文字幕| 欧美日韩国产高清一区二区 | 亚洲综合丝袜美腿| 色综合久久综合网欧美综合网| 国产喂奶挤奶一区二区三区| 狠狠色狠狠色综合日日91app| 538prom精品视频线放| 亚洲成人精品一区| 欧美精品日韩一本| 天天综合天天综合色| 欧美区一区二区三区| 丝袜诱惑制服诱惑色一区在线观看| 91成人免费电影| 亚洲国产成人av网| 337p亚洲精品色噜噜噜| 日韩在线卡一卡二| 精品免费视频.| 国产精品1区2区3区| 国产蜜臀97一区二区三区| 国产黄色精品网站| 中文天堂在线一区| 国产69精品久久久久777| 中文字幕精品在线不卡| 91免费看`日韩一区二区| 曰韩精品一区二区| 在线播放日韩导航| 精品一区二区三区不卡| 国产欧美日韩激情| 91啦中文在线观看| 亚洲成av人片在www色猫咪| 在线不卡一区二区| 国产成人精品综合在线观看 | 亚洲女性喷水在线观看一区| 色欧美日韩亚洲| 日本va欧美va欧美va精品| 欧美成人一级视频| 成人综合激情网| 亚洲图片欧美综合| 精品久久久影院| 99riav久久精品riav| 亚洲1区2区3区4区| 国产欧美日韩综合| 欧美亚男人的天堂| 激情综合网激情| 亚洲免费成人av| 欧美一区二区日韩一区二区| 国产成人在线影院 | 国产精品入口麻豆九色| 日本韩国视频一区二区| 久久精品国产**网站演员| 国产精品成人网| 欧美mv和日韩mv国产网站| 91视频com| 国产一区二区三区视频在线播放| 亚洲伦理在线精品| 久久久精品人体av艺术| 欧美无人高清视频在线观看| 高清不卡在线观看| 日韩国产精品久久久久久亚洲| 国产精品久99| 精品精品国产高清a毛片牛牛| 91国偷自产一区二区开放时间 | 欧美一区二区三区视频| 99久久精品国产精品久久| 蜜臀久久久99精品久久久久久| 亚洲欧洲成人自拍| 精品女同一区二区| 欧美美女喷水视频| 色呦呦一区二区三区| 成人精品国产一区二区4080| 美美哒免费高清在线观看视频一区二区 | 一区二区三区日韩| 久久久久久久久97黄色工厂| 欧美久久久久久蜜桃| 日本精品视频一区二区| 福利一区在线观看| 狠狠色丁香九九婷婷综合五月| 性久久久久久久久| 一区二区三区免费观看| 国产精品不卡在线观看| 国产欧美一区二区三区网站| 精品裸体舞一区二区三区| 欧美日本一区二区| 精品视频全国免费看| 色综合久久久久久久久| 91在线观看美女| 99vv1com这只有精品| 91丨九色porny丨蝌蚪| 菠萝蜜视频在线观看一区| 成人国产精品免费网站| 9i在线看片成人免费| 大美女一区二区三区| 国产精品456露脸| 成人一级片网址| 不卡av在线网| 色先锋久久av资源部| 欧美在线你懂的| 欧美日韩一区二区欧美激情| 欧美视频一区在线| 欧美一区午夜精品| 欧美肥胖老妇做爰| 日韩女优av电影| 2020国产精品自拍| 国产精品午夜春色av| 国产精品免费久久久久| 亚洲欧洲av一区二区三区久久| 亚洲三级在线看| 亚洲大片一区二区三区| 秋霞成人午夜伦在线观看| 狠狠色狠狠色合久久伊人| 成人免费毛片aaaaa**| 色偷偷成人一区二区三区91| 欧美日韩另类一区| 欧美va亚洲va香蕉在线| 国产精品你懂的在线| 亚洲国产日韩综合久久精品| 美腿丝袜亚洲综合| 福利电影一区二区| 91女厕偷拍女厕偷拍高清| 在线成人小视频| 久久精品在这里| 一区二区三区在线视频播放 | 欧美日韩一区二区电影| 日韩一区二区在线看片| 日本一区二区免费在线观看视频 | 国产三级精品三级在线专区| 日韩美女视频一区| 奇米影视在线99精品| 高清国产一区二区| 欧美情侣在线播放| 欧美激情资源网| 日韩电影在线观看电影| 国产成人99久久亚洲综合精品| 在线精品亚洲一区二区不卡| 日韩欧美成人一区二区| 亚洲精品国产精品乱码不99| 久久69国产一区二区蜜臀| 色久优优欧美色久优优| 精品国产免费一区二区三区香蕉| 亚洲欧美日韩国产一区二区三区| 蜜臀久久99精品久久久久久9| 97久久精品人人爽人人爽蜜臀 | 欧美日韩情趣电影| 国产日韩欧美精品一区| 五月天中文字幕一区二区| 成人一区二区三区中文字幕| 欧美一区二区国产| 一区二区三区四区蜜桃| 国产.欧美.日韩| 欧美成人伊人久久综合网| 亚洲国产精品精华液网站| 成人av手机在线观看| 久久婷婷综合激情| 美女在线视频一区| 欧美色精品在线视频| 日韩码欧中文字| 国产成人免费高清| 2024国产精品| 麻豆精品在线观看| 欧美精三区欧美精三区| 亚洲国产va精品久久久不卡综合| 99re成人在线| 中文字幕日韩精品一区| 国产aⅴ综合色| 国产亚洲一本大道中文在线| 麻豆久久一区二区| 中文字幕欧美三区| 国产麻豆精品在线观看| 欧美大肚乱孕交hd孕妇| 麻豆成人久久精品二区三区小说| 欧美日韩精品一区视频| 亚洲成人免费视频| 欧美精品在线一区二区三区| 午夜视频在线观看一区二区| 一本大道综合伊人精品热热| 自拍偷拍亚洲欧美日韩|