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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ftdbgmem.c

?? a very goog book
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
/***************************************************************************//*                                                                         *//*  ftdbgmem.c                                                             *//*                                                                         *//*    Memory debugger (body).                                              *//*                                                                         *//*  Copyright 2001, 2002 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.                                        *//*                                                                         *//***************************************************************************/#include <ft2build.h>#include FT_CONFIG_CONFIG_H#include FT_INTERNAL_DEBUG_H#include FT_INTERNAL_MEMORY_H#include FT_SYSTEM_H#include FT_ERRORS_H#include FT_TYPES_H#ifdef FT_DEBUG_MEMORY#include <stdio.h>#include <stdlib.h>  typedef struct FT_MemNodeRec_*   FT_MemNode;  typedef struct FT_MemTableRec_*  FT_MemTable;#define FT_MEM_VAL( addr )  ((FT_ULong)(FT_Pointer)( addr ))  typedef struct  FT_MemNodeRec_  {    FT_Byte*     address;    FT_Long      size;     /* < 0 if the block was freed */    const char*  alloc_file_name;    FT_Long      alloc_line_no;    const char*  free_file_name;    FT_Long      free_line_no;    FT_MemNode   link;  } FT_MemNodeRec;  typedef struct  FT_MemTableRec_  {    FT_ULong         size;    FT_ULong         nodes;    FT_MemNode*      buckets;    FT_ULong         alloc_total;    FT_ULong         alloc_current;    FT_ULong         alloc_max;    const char*      file_name;    FT_Long          line_no;    FT_Memory        memory;    FT_Pointer       memory_user;    FT_Alloc_Func    alloc;    FT_Free_Func     free;    FT_Realloc_Func  realloc;  } FT_MemTableRec;#define FT_MEM_SIZE_MIN  7#define FT_MEM_SIZE_MAX  13845163#define FT_FILENAME( x )  ((x) ? (x) : "unknown file")  static const FT_UInt  ft_mem_primes[] =  {    7,    11,    19,    37,    73,    109,    163,    251,    367,    557,    823,    1237,    1861,    2777,    4177,    6247,    9371,    14057,    21089,    31627,    47431,    71143,    106721,    160073,    240101,    360163,    540217,    810343,    1215497,    1823231,    2734867,    4102283,    6153409,    9230113,    13845163,  };  extern void  ft_mem_debug_panic( const char*  fmt, ... )  {    va_list  ap;    printf( "FreeType.Debug: " );    va_start( ap, fmt );    vprintf( fmt, ap );    va_end( ap );    printf( "\n" );    exit( EXIT_FAILURE );  }  static FT_ULong  ft_mem_closest_prime( FT_ULong  num )  {    FT_UInt  i;    for ( i = 0;          i < sizeof ( ft_mem_primes ) / sizeof ( ft_mem_primes[0] ); i++ )      if ( ft_mem_primes[i] > num )        return ft_mem_primes[i];    return FT_MEM_SIZE_MAX;  }  static FT_Pointer  ft_mem_table_alloc( FT_MemTable  table,                      FT_Long      size )  {    FT_Memory   memory = table->memory;    FT_Pointer  block;    memory->user = table->memory_user;    block = table->alloc( memory, size );    memory->user = table;   return block;  }  static void  ft_mem_table_free( FT_MemTable  table,                     FT_Pointer   block )  {    FT_Memory  memory = table->memory;    memory->user = table->memory_user;    table->free( memory, block );    memory->user = table;  }  static void  ft_mem_table_resize( FT_MemTable  table )  {    FT_ULong  new_size;    new_size = ft_mem_closest_prime( table->nodes );    if ( new_size != table->size )    {      FT_MemNode*  new_buckets ;      FT_ULong     i;      new_buckets = (FT_MemNode *)                    ft_mem_table_alloc( table,                                        new_size * sizeof ( FT_MemNode ) );      if ( new_buckets == NULL )        return;      FT_MEM_SET( new_buckets, 0, sizeof ( FT_MemNode ) * new_size );      for ( i = 0; i < table->size; i++ )      {        FT_MemNode  node, next, *pnode;        FT_ULong    hash;        node = table->buckets[i];        while ( node )        {          next  = node->link;          hash  = FT_MEM_VAL( node->address ) % new_size;          pnode = new_buckets + hash;          node->link = pnode[0];          pnode[0]   = node;          node = next;        }      }      if ( table->buckets )        ft_mem_table_free( table, table->buckets );      table->buckets = new_buckets;      table->size    = new_size;    }  }  static FT_MemTable  ft_mem_table_new( FT_Memory  memory )  {    FT_MemTable  table;    table = (FT_MemTable)memory->alloc( memory, sizeof ( *table ) );    if ( table == NULL )      goto Exit;    FT_MEM_SET( table, 0, sizeof ( *table ) );    table->size  = FT_MEM_SIZE_MIN;    table->nodes = 0;    table->memory = memory;    table->memory_user = memory->user;    table->alloc   = memory->alloc;    table->realloc = memory->realloc;    table->free    = memory->free;    table->buckets = (FT_MemNode *)                     memory->alloc( memory,                                    table->size * sizeof ( FT_MemNode ) );    if ( table->buckets )      FT_MEM_SET( table->buckets, 0, sizeof ( FT_MemNode ) * table->size );    else    {      memory->free( memory, table );      table = NULL;    }  Exit:    return table;  }  static void  ft_mem_table_destroy( FT_MemTable  table )  {    FT_ULong  i;    if ( table )    {      FT_Long    leak_count = 0;      FT_ULong   leaks = 0;      for ( i = 0; i < table->size; i++ )      {        FT_MemNode  *pnode = table->buckets + i, next, node = *pnode;        while ( node )        {          next       = node->link;          node->link = 0;          if ( node->size > 0 )          {            printf(              "leaked memory block at address %p, size %8ld in (%s:%ld)\n",              node->address, node->size,              FT_FILENAME( node->alloc_file_name ),              node->alloc_line_no );            leak_count++;            leaks += node->size;            ft_mem_table_free( table, node->address );          }          node->address = NULL;          node->size    = 0;          free( node );          node = next;        }        table->buckets[i] = 0;      }      ft_mem_table_free( table, table->buckets );      table->buckets = NULL;      table->size   = 0;      table->nodes  = 0;      printf(        "FreeType: total memory allocations = %ld\n", table->alloc_total );      printf(        "FreeType: maximum memory footprint = %ld\n", table->alloc_max );      free( table );      if ( leak_count > 0 )        ft_mem_debug_panic(          "FreeType: %ld bytes of memory leaked in %ld blocks\n",          leaks, leak_count );      printf( "FreeType: No memory leaks detected!\n" );    }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲精品超碰| 国产精品视频你懂的| 国产乱国产乱300精品| 亚洲人吸女人奶水| 精品精品国产高清a毛片牛牛| 99在线精品一区二区三区| 亚洲成人黄色影院| 国产精品嫩草影院av蜜臀| 欧美丰满少妇xxxbbb| 成人免费电影视频| 久久成人麻豆午夜电影| 亚洲资源在线观看| 国产精品沙发午睡系列990531| 在线不卡a资源高清| 91免费观看视频在线| 精品亚洲porn| 婷婷综合久久一区二区三区| 综合久久久久久| 久久久蜜臀国产一区二区| 一区二区三区精品视频| 久久久久久久网| 91精品婷婷国产综合久久竹菊| 成人av综合一区| 国产麻豆精品在线| 精品在线播放免费| 轻轻草成人在线| 一区二区三区精密机械公司| 国产精品久久久久久久久搜平片 | 性欧美疯狂xxxxbbbb| 中文字幕一区二区三区蜜月| 国产亚洲精品福利| 精品久久99ma| 欧美电影免费观看高清完整版| 欧美精品一二三| 欧美日韩黄色一区二区| 在线观看日产精品| 在线视频一区二区三| 99精品视频一区二区三区| 国产成人免费在线| 国产很黄免费观看久久| 国产精品亚洲视频| 国产米奇在线777精品观看| 久久成人免费网站| 国产精品一区二区无线| 国产麻豆91精品| 国产毛片一区二区| 国产成人欧美日韩在线电影| 成人午夜伦理影院| 91亚洲精品久久久蜜桃| 色屁屁一区二区| 欧美在线观看你懂的| 欧美三级韩国三级日本一级| 欧美日韩亚洲综合在线| 欧美一级高清片在线观看| 日韩欧美中文字幕精品| 精品国产三级a在线观看| 久久蜜桃一区二区| 中文字幕不卡在线观看| 亚洲视频每日更新| 亚洲午夜精品一区二区三区他趣| 天堂成人免费av电影一区| 日本麻豆一区二区三区视频| 久久精品久久久精品美女| 久久精品国产成人一区二区三区| 国产精品一卡二卡在线观看| 国产成人亚洲精品青草天美| av欧美精品.com| 91国产视频在线观看| 欧美一区国产二区| 国产人久久人人人人爽| 成人免费在线观看入口| 亚洲国产人成综合网站| 久久疯狂做爰流白浆xx| 成人的网站免费观看| 精品视频123区在线观看| 日韩午夜电影在线观看| 中文字幕 久热精品 视频在线| 亚洲精品日韩综合观看成人91| 婷婷国产在线综合| 国产精品18久久久久| 色偷偷久久一区二区三区| 日韩视频一区二区三区在线播放| 国产丝袜欧美中文另类| 亚洲 欧美综合在线网络| 国内外成人在线| 日本福利一区二区| 久久一二三国产| 亚洲精品成人a在线观看| 精品一区二区三区在线观看 | 国产精品国产三级国产aⅴ入口 | 色诱亚洲精品久久久久久| 91精品国产综合久久蜜臀| 欧美国产日本韩| 天堂影院一区二区| 国产不卡高清在线观看视频| 欧美日韩一级大片网址| 中文一区一区三区高中清不卡| 亚洲国产cao| jlzzjlzz欧美大全| 日韩欧美激情在线| 亚洲图片欧美色图| 成人福利视频在线| 欧美一级高清大全免费观看| 亚洲人成人一区二区在线观看| 精品一区中文字幕| 欧美日韩在线播放三区四区| 国产精品三级视频| 久久成人精品无人区| 欧美日韩精品二区第二页| 国产精品第一页第二页第三页| 久久丁香综合五月国产三级网站| 欧美性一区二区| 国产精品久久久久久久久晋中| 久久69国产一区二区蜜臀| 欧美亚洲国产bt| 中文字幕av一区二区三区高 | 欧美一区二区精美| 亚洲一卡二卡三卡四卡无卡久久| 国产成人夜色高潮福利影视| 日韩精品一区二区三区视频在线观看| 亚洲一区二区三区自拍| 99国产精品一区| 久久久www成人免费毛片麻豆| 日韩电影在线观看网站| 欧美日本一区二区| 成人免费视频视频| 久久久久一区二区三区四区| 蜜桃精品视频在线| 日韩美女在线视频| 免播放器亚洲一区| 这里只有精品99re| 婷婷激情综合网| 91精品国产综合久久久久久久| 亚洲成人福利片| 欧美日韩一级视频| 无码av中文一区二区三区桃花岛| 在线免费精品视频| 亚洲免费av观看| 色吧成人激情小说| 亚洲精品欧美在线| 欧美日韩一级二级三级| 亚洲成av人片一区二区三区| 欧美日韩情趣电影| 婷婷国产v国产偷v亚洲高清| 欧美一区二区三区成人| 另类综合日韩欧美亚洲| 精品国产电影一区二区| 国产麻豆视频精品| 国产精品免费久久久久| 91亚洲国产成人精品一区二区三| 亚洲欧美日韩一区二区 | 久久久久久久综合日本| 国产精品影音先锋| 国产精品欧美一区喷水| 97se亚洲国产综合在线| 亚洲成a人片在线观看中文| 欧美乱妇一区二区三区不卡视频| 青青草精品视频| 久久久久久久久久久久电影| 成人精品电影在线观看| 国产一区二区女| 国产精品网站导航| 日本二三区不卡| 日韩极品在线观看| 久久婷婷久久一区二区三区| 成人av电影免费观看| 亚洲国产一区视频| 欧美精品一区二区三区四区| 大白屁股一区二区视频| 亚洲精品视频免费观看| 日韩一区二区免费电影| 国产成人免费9x9x人网站视频| 亚洲免费av在线| 日韩欧美一级二级| jvid福利写真一区二区三区| 日韩电影一区二区三区四区| 国产女同互慰高潮91漫画| 91成人看片片| 麻豆精品精品国产自在97香蕉| 国产精品久久午夜夜伦鲁鲁| 欧美日韩高清在线播放| 国产精一品亚洲二区在线视频| 亚洲乱码国产乱码精品精小说| 欧美一区二区三区免费视频| 成人深夜在线观看| 视频一区二区中文字幕| 国产视频不卡一区| 欧美久久久久久久久久| 成人在线综合网站| 免费观看成人鲁鲁鲁鲁鲁视频| 中文字幕在线免费不卡| 欧美一级片在线看| 日本久久电影网| 国产精品自拍一区| 天天色图综合网| 国产精品传媒视频| 久久久久久一级片| 69久久99精品久久久久婷婷| 不卡一二三区首页| 国产一区二区三区四区五区入口|