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

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

?? pngtest.c

?? 一款最完整的工業組態軟源代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
   }
}
#else
/* this is the model-independent version. Since the standard I/O library
   can't handle far buffers in the medium and small models, we have to copy
   the data.
*/

#define NEAR_BUF_SIZE 1024
#define MIN(a,b) (a <= b ? a : b)

static void
pngtest_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
{
   png_uint_32 check;
   png_byte *near_data;  /* Needs to be "png_byte *" instead of "png_bytep" */
   png_FILE_p io_ptr;

   /* Check if data really is near. If so, use usual code. */
   near_data = (png_byte *)CVT_PTR_NOCHECK(data);
   io_ptr = (png_FILE_p)CVT_PTR(png_ptr->io_ptr);
   if ((png_bytep)near_data == data)
   {
      WRITEFILE(io_ptr, near_data, length, check);
   }
   else
   {
      png_byte buf[NEAR_BUF_SIZE];
      png_size_t written, remaining, err;
      check = 0;
      remaining = length;
      do
      {
         written = MIN(NEAR_BUF_SIZE, remaining);
         png_memcpy(buf, data, written); /* copy far buffer to near buffer */
         WRITEFILE(io_ptr, buf, written, err);
         if (err != written)
            break;
         else
            check += err;
         data += written;
         remaining -= written;
      }
      while (remaining != 0);
   }
   if (check != length)
   {
      png_error(png_ptr, "Write Error");
   }
}

#endif /* USE_FAR_KEYWORD */

/* This function is called when there is a warning, but the library thinks
 * it can continue anyway.  Replacement functions don't have to do anything
 * here if you don't want to.  In the default configuration, png_ptr is
 * not used, but it is passed in case it may be useful.
 */
static void
pngtest_warning(png_structp png_ptr, png_const_charp message)
{
   PNG_CONST char *name = "UNKNOWN (ERROR!)";
   if (png_ptr != NULL && png_ptr->error_ptr != NULL)
      name = png_ptr->error_ptr;
   fprintf(STDERR, "%s: libpng warning: %s\n", name, message);
}

/* This is the default error handling function.  Note that replacements for
 * this function MUST NOT RETURN, or the program will likely crash.  This
 * function is used by default, or if the program supplies NULL for the
 * error function pointer in png_set_error_fn().
 */
static void
pngtest_error(png_structp png_ptr, png_const_charp message)
{
   pngtest_warning(png_ptr, message);
   /* We can return because png_error calls the default handler, which is
    * actually OK in this case. */
}
#endif /* PNG_NO_STDIO */
/* END of code to validate stdio-free compilation */

/* START of code to validate memory allocation and deallocation */
#if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG

/* Allocate memory.  For reasonable files, size should never exceed
   64K.  However, zlib may allocate more then 64K if you don't tell
   it not to.  See zconf.h and png.h for more information.  zlib does
   need to allocate exactly 64K, so whatever you call here must
   have the ability to do that.

   This piece of code can be compiled to validate max 64K allocations
   by setting MAXSEG_64K in zlib zconf.h *or* PNG_MAX_MALLOC_64K. */
typedef struct memory_information
{
   png_uint_32               size;
   png_voidp                 pointer;
   struct memory_information FAR *next;
} memory_information;
typedef memory_information FAR *memory_infop;

static memory_infop pinformation = NULL;
static int current_allocation = 0;
static int maximum_allocation = 0;
static int total_allocation = 0;
static int num_allocations = 0;

png_voidp png_debug_malloc PNGARG((png_structp png_ptr, png_uint_32 size));
void png_debug_free PNGARG((png_structp png_ptr, png_voidp ptr));

png_voidp
png_debug_malloc(png_structp png_ptr, png_uint_32 size)
{

   /* png_malloc has already tested for NULL; png_create_struct calls
      png_debug_malloc directly, with png_ptr == NULL which is OK */

   if (size == 0)
      return (NULL);

   /* This calls the library allocator twice, once to get the requested
      buffer and once to get a new free list entry. */
   {
      /* Disable malloc_fn and free_fn */
      memory_infop pinfo;
      png_set_mem_fn(png_ptr, NULL, NULL, NULL);
      pinfo = (memory_infop)png_malloc(png_ptr,
         (png_uint_32)png_sizeof (*pinfo));
      pinfo->size = size;
      current_allocation += size;
      total_allocation += size;
      num_allocations ++;
      if (current_allocation > maximum_allocation)
         maximum_allocation = current_allocation;
      pinfo->pointer = (png_voidp)png_malloc(png_ptr, size);
      /* Restore malloc_fn and free_fn */
      png_set_mem_fn(png_ptr, png_voidp_NULL, (png_malloc_ptr)png_debug_malloc,
         (png_free_ptr)png_debug_free);
      if (size != 0 && pinfo->pointer == NULL)
      {
         current_allocation -= size;
         total_allocation -= size;
         png_error(png_ptr,
           "out of memory in pngtest->png_debug_malloc.");
      }
      pinfo->next = pinformation;
      pinformation = pinfo;
      /* Make sure the caller isn't assuming zeroed memory. */
      png_memset(pinfo->pointer, 0xdd, pinfo->size);
      if(verbose)
         printf("png_malloc %lu bytes at %x\n",size,pinfo->pointer);
      assert(pinfo->size != 12345678);
      return (png_voidp)(pinfo->pointer);
   }
}

/* Free a pointer.  It is removed from the list at the same time. */
void
png_debug_free(png_structp png_ptr, png_voidp ptr)
{
   if (png_ptr == NULL)
      fprintf(STDERR, "NULL pointer to png_debug_free.\n");
   if (ptr == 0)
   {
#if 0 /* This happens all the time. */
      fprintf(STDERR, "WARNING: freeing NULL pointer\n");
#endif
      return;
   }

   /* Unlink the element from the list. */
   {
      memory_infop FAR *ppinfo = &pinformation;
      for (;;)
      {
         memory_infop pinfo = *ppinfo;
         if (pinfo->pointer == ptr)
         {
            *ppinfo = pinfo->next;
            current_allocation -= pinfo->size;
            if (current_allocation < 0)
               fprintf(STDERR, "Duplicate free of memory\n");
            /* We must free the list element too, but first kill
               the memory that is to be freed. */
            png_memset(ptr, 0x55, pinfo->size);
            png_free_default(png_ptr, pinfo);
            pinfo=NULL;
            break;
         }
         if (pinfo->next == NULL)
         {
            fprintf(STDERR, "Pointer %x not found\n", (unsigned int)ptr);
            break;
         }
         ppinfo = &pinfo->next;
      }
   }

   /* Finally free the data. */
   if(verbose)
      printf("Freeing %x\n",ptr);
   png_free_default(png_ptr, ptr);
   ptr=NULL;
}
#endif /* PNG_USER_MEM_SUPPORTED && PNG_DEBUG */
/* END of code to test memory allocation/deallocation */

/* Test one file */
int
test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
{
   static png_FILE_p fpin;
   static png_FILE_p fpout;  /* "static" prevents setjmp corruption */
   png_structp read_ptr;
   png_infop read_info_ptr, end_info_ptr;
#ifdef PNG_WRITE_SUPPORTED
   png_structp write_ptr;
   png_infop write_info_ptr;
   png_infop write_end_info_ptr;
#else
   png_structp write_ptr = NULL;
   png_infop write_info_ptr = NULL;
   png_infop write_end_info_ptr = NULL;
#endif
   png_bytep row_buf;
   png_uint_32 y;
   png_uint_32 width, height;
   int num_pass, pass;
   int bit_depth, color_type;
#ifdef PNG_SETJMP_SUPPORTED
#ifdef USE_FAR_KEYWORD
   jmp_buf jmpbuf;
#endif
#endif

#if defined(_WIN32_WCE)
   TCHAR path[MAX_PATH];
#endif
   char inbuf[256], outbuf[256];

   row_buf = NULL;

#if defined(_WIN32_WCE)
   MultiByteToWideChar(CP_ACP, 0, inname, -1, path, MAX_PATH);
   if ((fpin = CreateFile(path, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL)) == INVALID_HANDLE_VALUE)
#else
   if ((fpin = fopen(inname, "rb")) == NULL)
#endif
   {
      fprintf(STDERR, "Could not find input file %s\n", inname);
      return (1);
   }

#if defined(_WIN32_WCE)
   MultiByteToWideChar(CP_ACP, 0, outname, -1, path, MAX_PATH);
   if ((fpout = CreateFile(path, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL)) == INVALID_HANDLE_VALUE)
#else
   if ((fpout = fopen(outname, "wb")) == NULL)
#endif
   {
      fprintf(STDERR, "Could not open output file %s\n", outname);
      FCLOSE(fpin);
      return (1);
   }

   png_debug(0, "Allocating read and write structures\n");
#if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG
   read_ptr = png_create_read_struct_2(PNG_LIBPNG_VER_STRING, png_voidp_NULL,
      png_error_ptr_NULL, png_error_ptr_NULL, png_voidp_NULL,
      (png_malloc_ptr)png_debug_malloc, (png_free_ptr)png_debug_free);
#else
   read_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, png_voidp_NULL,
      png_error_ptr_NULL, png_error_ptr_NULL);
#endif
#if defined(PNG_NO_STDIO)
   png_set_error_fn(read_ptr, (png_voidp)inname, pngtest_error,
       pngtest_warning);
#endif
#ifdef PNG_WRITE_SUPPORTED
#if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG
   write_ptr = png_create_write_struct_2(PNG_LIBPNG_VER_STRING, png_voidp_NULL,
      png_error_ptr_NULL, png_error_ptr_NULL, png_voidp_NULL,
      (png_malloc_ptr)png_debug_malloc, (png_free_ptr)png_debug_free);
#else
   write_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, png_voidp_NULL,
      png_error_ptr_NULL, png_error_ptr_NULL);
#endif
#if defined(PNG_NO_STDIO)
   png_set_error_fn(write_ptr, (png_voidp)inname, pngtest_error,
       pngtest_warning);
#endif
#endif
   png_debug(0, "Allocating read_info, write_info and end_info structures\n");
   read_info_ptr = png_create_info_struct(read_ptr);
   end_info_ptr = png_create_info_struct(read_ptr);
#ifdef PNG_WRITE_SUPPORTED
   write_info_ptr = png_create_info_struct(write_ptr);
   write_end_info_ptr = png_create_info_struct(write_ptr);
#endif

#ifdef PNG_SETJMP_SUPPORTED
   png_debug(0, "Setting jmpbuf for read struct\n");
#ifdef USE_FAR_KEYWORD
   if (setjmp(jmpbuf))
#else
   if (setjmp(png_jmpbuf(read_ptr)))
#endif
   {
      fprintf(STDERR, "%s -> %s: libpng read error\n", inname, outname);
      if (row_buf)
         png_free(read_ptr, row_buf);
      png_destroy_read_struct(&read_ptr, &read_info_ptr, &end_info_ptr);
#ifdef PNG_WRITE_SUPPORTED
      png_destroy_info_struct(write_ptr, &write_end_info_ptr);
      png_destroy_write_struct(&write_ptr, &write_info_ptr);
#endif
      FCLOSE(fpin);
      FCLOSE(fpout);
      return (1);
   }
#ifdef USE_FAR_KEYWORD
   png_memcpy(png_jmpbuf(read_ptr),jmpbuf,png_sizeof(jmp_buf));
#endif

#ifdef PNG_WRITE_SUPPORTED
   png_debug(0, "Setting jmpbuf for write struct\n");
#ifdef USE_FAR_KEYWORD
   if (setjmp(jmpbuf))
#else
   if (setjmp(png_jmpbuf(write_ptr)))
#endif
   {
      fprintf(STDERR, "%s -> %s: libpng write error\n", inname, outname);
      png_destroy_read_struct(&read_ptr, &read_info_ptr, &end_info_ptr);
      png_destroy_info_struct(write_ptr, &write_end_info_ptr);
#ifdef PNG_WRITE_SUPPORTED
      png_destroy_write_struct(&write_ptr, &write_info_ptr);
#endif
      FCLOSE(fpin);
      FCLOSE(fpout);
      return (1);
   }
#ifdef USE_FAR_KEYWORD
   png_memcpy(png_jmpbuf(write_ptr),jmpbuf,png_sizeof(jmp_buf));
#endif
#endif
#endif

   png_debug(0, "Initializing input and output streams\n");
#if !defined(PNG_NO_STDIO)
   png_init_io(read_ptr, fpin);
#  ifdef PNG_WRITE_SUPPORTED
   png_init_io(write_ptr, fpout);
#  endif
#else
   png_set_read_fn(read_ptr, (png_voidp)fpin, pngtest_read_data);
#  ifdef PNG_WRITE_SUPPORTED
   png_set_write_fn(write_ptr, (png_voidp)fpout,  pngtest_write_data,
#    if defined(PNG_WRITE_FLUSH_SUPPORTED)
      pngtest_flush);
#    else
      NULL);
#    endif
#  endif
#endif
   if(status_dots_requested == 1)
   {
#ifdef PNG_WRITE_SUPPORTED
      png_set_write_status_fn(write_ptr, write_row_callback);
#endif
      png_set_read_status_fn(read_ptr, read_row_callback);
   }
   else
   {
#ifdef PNG_WRITE_SUPPORTED
      png_set_write_status_fn(write_ptr, png_write_status_ptr_NULL);
#endif
      png_set_read_status_fn(read_ptr, png_read_status_ptr_NULL);
   }

#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED)
   {
     int i;
     for(i=0; i<256; i++)
        filters_used[i]=0;
     png_set_read_user_transform_fn(read_ptr, count_filters);
   }
#endif
#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆精品精品国产自在97香蕉| 国产精华液一区二区三区| 精品一区二区三区的国产在线播放| 国产成人福利片| 666欧美在线视频| 综合色中文字幕| 国产在线精品视频| 欧美精品v日韩精品v韩国精品v| 国产精品入口麻豆九色| 极品美女销魂一区二区三区| 日本韩国视频一区二区| 国产亚洲精品aa午夜观看| 青青草成人在线观看| 欧美怡红院视频| 综合婷婷亚洲小说| 国产ts人妖一区二区| 日韩一级大片在线| 亚洲成人第一页| 欧美亚洲国产bt| 亚洲欧美福利一区二区| 成人午夜av电影| 国产丝袜在线精品| 国产一区二区免费看| 久久综合久久综合亚洲| 久久成人久久鬼色| 欧美日韩一区中文字幕| 依依成人精品视频| 91色综合久久久久婷婷| 国产欧美在线观看一区| 国产成人免费高清| 久久久久国产精品人| 国内一区二区在线| 久久久不卡网国产精品二区| 麻豆免费精品视频| 精品噜噜噜噜久久久久久久久试看| 日韩精品欧美精品| 欧美一区二区女人| 日本成人中文字幕| 26uuu另类欧美| 国产乱码精品一区二区三区忘忧草 | 久久久.com| 美女诱惑一区二区| 日韩免费高清电影| 蜜桃精品视频在线| 精品久久五月天| 国产一区二区在线免费观看| 久久久噜噜噜久久人人看| 成人免费高清在线| 亚洲欧美日韩国产综合| 欧美日韩亚洲综合一区二区三区| 视频一区欧美日韩| 亚洲精品在线网站| 国产精品一级二级三级| 国产精品乱人伦| 91免费视频网| 三级一区在线视频先锋| 欧美电视剧免费观看| 国产精品亚洲专一区二区三区 | 国产高清无密码一区二区三区| 亚洲精品一区二区三区蜜桃下载 | 日本不卡一二三区黄网| 欧美一级片免费看| 国产精品18久久久久久vr| 国产精品久久久久影院| 欧美色偷偷大香| 成人看片黄a免费看在线| 亚洲综合网站在线观看| 日韩精品一区二区三区在线播放 | 一区二区三区在线免费播放 | 精品在线免费观看| 综合色天天鬼久久鬼色| 91精品在线麻豆| 国产91丝袜在线观看| 日韩和欧美一区二区三区| 久久先锋影音av鲁色资源网| 一本久道中文字幕精品亚洲嫩| 日韩国产精品大片| 国产精品久久久久久久裸模| 7777精品伊人久久久大香线蕉完整版 | 亚洲一区二区五区| 久久久久久久综合狠狠综合| 色综合咪咪久久| 国产在线视频精品一区| 亚洲一区二区在线视频| 国产精品午夜免费| 欧美一级黄色大片| 91免费视频网| 国产精品一二二区| 麻豆精品精品国产自在97香蕉| 亚洲精品乱码久久久久久黑人 | 91麻豆精品国产91久久久| 欧美精品一区二区在线观看| 久久狠狠亚洲综合| 日韩欧美一区中文| 国产精品一级二级三级| 亚洲三级在线播放| 精品对白一区国产伦| 亚洲精品高清视频在线观看| 国产99精品在线观看| 亚洲精品视频在线观看网站| 91精品国产品国语在线不卡| 99久久综合狠狠综合久久| 六月丁香婷婷久久| 亚洲人一二三区| 久久久久久一二三区| 在线电影院国产精品| 欧美午夜宅男影院| 欧美剧情电影在线观看完整版免费励志电影| 首页综合国产亚洲丝袜| 国产精品系列在线| 亚洲国产成人私人影院tom| 国产精品网站一区| 在线免费观看日韩欧美| 亚洲不卡一区二区三区| 久久精品一区二区三区四区| 日本欧美在线观看| 亚洲激情六月丁香| 亚洲欧美成人一区二区三区| 亚洲免费在线视频| 亚洲欧美国产三级| 亚洲一区二区欧美激情| 同产精品九九九| 免费久久99精品国产| 免费成人av在线| 国产美女在线精品| 国产精品一线二线三线| 床上的激情91.| 91在线观看一区二区| 一本色道久久综合亚洲aⅴ蜜桃| 色婷婷av一区二区三区gif | 精品久久久久久最新网址| 日韩一区二区不卡| 欧美精品一区二区不卡 | 国产经典欧美精品| 成人av免费网站| 色视频成人在线观看免| 欧美剧在线免费观看网站| 精品91自产拍在线观看一区| 久久九九影视网| 亚洲午夜电影网| 狠狠色丁香婷婷综合久久片| 成人精品小蝌蚪| 欧美在线综合视频| 亚洲精品一区二区三区福利| 国产成人精品午夜视频免费| 久久精品一级爱片| 亚洲成av人在线观看| 床上的激情91.| 精品理论电影在线观看| 中文字幕一区二| 亚洲人精品一区| 激情小说欧美图片| 91视频xxxx| 欧美人妖巨大在线| 欧美国产日本韩| 国产精品理伦片| 国产日韩欧美激情| 亚洲一区二区三区国产| 韩国成人福利片在线播放| 91免费看片在线观看| 日韩美女一区二区三区| 一区二区三区在线不卡| 国产精品一卡二卡在线观看| 色婷婷精品大视频在线蜜桃视频| 精品久久久久久久久久久久久久久 | 欧美成人性战久久| 亚洲免费三区一区二区| 国产精品影视在线| 欧美一区日韩一区| 成人欧美一区二区三区白人| 久久国产精品第一页| 欧美在线你懂得| 国产精品久线观看视频| 六月丁香综合在线视频| 精品视频123区在线观看| 国产精品第13页| 国产在线不卡一区| 日韩欧美黄色影院| 天涯成人国产亚洲精品一区av| 99精品视频在线免费观看| 精品国产99国产精品| 亚洲不卡av一区二区三区| 色哟哟在线观看一区二区三区| 精品国产露脸精彩对白| 蜜桃久久av一区| 69堂亚洲精品首页| 亚洲午夜精品久久久久久久久| www.欧美亚洲| 欧美国产激情一区二区三区蜜月 | 天天免费综合色| 91久久精品一区二区| 最好看的中文字幕久久| 成人激情小说网站| 欧美韩国日本一区| 国产成人亚洲精品狼色在线 | 欧美日韩在线观看一区二区| 樱桃国产成人精品视频| 成人黄色软件下载| 国产精品传媒视频| 97se亚洲国产综合自在线观|