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

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

?? inffast.c

?? 一個delphi下壓縮成zip文件的例子
?? C
字號:
/* inffast.c -- process literals and length/distance pairs fast
 * Copyright (C) 1995-1996 Mark Adler
 * For conditions of distribution and use, see copyright notice in zlib.h 
 */

#include "zutil.h"
#include "inftrees.h"
#include "infblock.h"
#include "infcodes.h"
#include "infutil.h"
#include "inffast.h"

struct inflate_codes_state {int dummy;}; /* for buggy compilers */

/* simplify the use of the inflate_huft type with some defines */
#define base more.Base
#define next more.Next
#define exop word.what.Exop
#define bits word.what.Bits

/* macros for bit input with no checking and for returning unused bytes */
#define GRABBITS(j) {while(k<(j)){b|=((uLong)NEXTBYTE)<<k;k+=8;}}
#define UNGRAB {n+=(c=k>>3);p-=c;k&=7;}

/* Called with number of bytes left to write in window at least 258
   (the maximum string length) and number of input bytes available
   at least ten.  The ten bytes are six bytes for the longest length/
   distance pair plus four bytes for overloading the bit buffer. */

int inflate_fast(bl, bd, tl, td, s, z)
uInt bl, bd;
inflate_huft *tl;
inflate_huft *td; /* need separate declaration for Borland C++ */
inflate_blocks_statef *s;
z_streamp z;
{
  inflate_huft *t;      /* temporary pointer */
  uInt e;               /* extra bits or operation */
  uLong b;              /* bit buffer */
  uInt k;               /* bits in bit buffer */
  Bytef *p;             /* input data pointer */
  uInt n;               /* bytes available there */
  Bytef *q;             /* output window write pointer */
  uInt m;               /* bytes to end of window or read pointer */
  uInt ml;              /* mask for literal/length tree */
  uInt md;              /* mask for distance tree */
  uInt c;               /* bytes to copy */
  uInt d;               /* distance back to copy from */
  Bytef *r;             /* copy source pointer */

  /* load input, output, bit values */
  LOAD

  /* initialize masks */
  ml = inflate_mask[bl];
  md = inflate_mask[bd];

  /* do until not enough input or output space for fast loop */
  do {                          /* assume called with m >= 258 && n >= 10 */
    /* get literal/length code */
    GRABBITS(20)                /* max bits for literal/length code */
    if ((e = (t = tl + ((uInt)b & ml))->exop) == 0)
    {
      DUMPBITS(t->bits)
      Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ?
                "inflate:         * literal '%c'\n" :
                "inflate:         * literal 0x%02x\n", t->base));
      *q++ = (Byte)t->base;
      m--;
      continue;
    }
    do {
      DUMPBITS(t->bits)
      if (e & 16)
      {
        /* get extra bits for length */
        e &= 15;
        c = t->base + ((uInt)b & inflate_mask[e]);
        DUMPBITS(e)
        Tracevv((stderr, "inflate:         * length %u\n", c));

        /* decode distance base of block to copy */
        GRABBITS(15);           /* max bits for distance code */
        e = (t = td + ((uInt)b & md))->exop;
        do {
          DUMPBITS(t->bits)
          if (e & 16)
          {
            /* get extra bits to add to distance base */
            e &= 15;
            GRABBITS(e)         /* get extra bits (up to 13) */
            d = t->base + ((uInt)b & inflate_mask[e]);
            DUMPBITS(e)
            Tracevv((stderr, "inflate:         * distance %u\n", d));

            /* do the copy */
            m -= c;
            if ((uInt)(q - s->window) >= d)     /* offset before dest */
            {                                   /*  just copy */
              r = q - d;
              *q++ = *r++;  c--;        /* minimum count is three, */
              *q++ = *r++;  c--;        /*  so unroll loop a little */
            }
            else                        /* else offset after destination */
            {
              e = d - (uInt)(q - s->window); /* bytes from offset to end */
              r = s->end - e;           /* pointer to offset */
              if (c > e)                /* if source crosses, */
              {
                c -= e;                 /* copy to end of window */
                do {
                  *q++ = *r++;
                } while (--e);
                r = s->window;          /* copy rest from start of window */
              }
            }
            do {                        /* copy all or what's left */
              *q++ = *r++;
            } while (--c);
            break;
          }
          else if ((e & 64) == 0)
            e = (t = t->next + ((uInt)b & inflate_mask[e]))->exop;
          else
          {
            z->msg = (char*)"invalid distance code";
            UNGRAB
            UPDATE
            return Z_DATA_ERROR;
          }
        } while (1);
        break;
      }
      if ((e & 64) == 0)
      {
        if ((e = (t = t->next + ((uInt)b & inflate_mask[e]))->exop) == 0)
        {
          DUMPBITS(t->bits)
          Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ?
                    "inflate:         * literal '%c'\n" :
                    "inflate:         * literal 0x%02x\n", t->base));
          *q++ = (Byte)t->base;
          m--;
          break;
        }
      }
      else if (e & 32)
      {
        Tracevv((stderr, "inflate:         * end of block\n"));
        UNGRAB
        UPDATE
        return Z_STREAM_END;
      }
      else
      {
        z->msg = (char*)"invalid literal/length code";
        UNGRAB
        UPDATE
        return Z_DATA_ERROR;
      }
    } while (1);
  } while (m >= 258 && n >= 10);

  /* not enough input or output--restore pointers and return */
  UNGRAB
  UPDATE
  return Z_OK;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美大尺度电影在线| 午夜精品久久久久久久久久| 天堂成人免费av电影一区| 99麻豆久久久国产精品免费优播| 久久午夜免费电影| 成人av网址在线观看| 亚洲综合无码一区二区| 欧美日韩成人在线| 久久精品国产秦先生| 久久夜色精品国产欧美乱极品| 国产欧美一区二区精品仙草咪| 国产精品一级黄| 亚洲欧洲色图综合| 欧美日韩国产123区| 91精品国产品国语在线不卡 | 国产91精品免费| 一区二区三区美女视频| 欧美成人午夜电影| 久久久久久久久伊人| 日本道色综合久久| 国产在线视频一区二区三区| 一区二区欧美视频| 天堂成人免费av电影一区| 麻豆精品久久久| 一区二区国产视频| 天堂资源在线中文精品| 黄一区二区三区| 99精品热视频| 大桥未久av一区二区三区中文| 男女男精品网站| 亚洲一区二区美女| 青草av.久久免费一区| 国产一区二区在线视频| 喷白浆一区二区| 成人免费黄色在线| 在线成人午夜影院| 欧美日韩一区久久| 色婷婷久久一区二区三区麻豆| 国产一二三精品| 欧美性生活影院| 欧美又粗又大又爽| 色综合久久久久综合| 日韩欧美综合一区| 日韩一区二区在线播放| 久久人人爽爽爽人久久久| 一区二区三区四区在线播放| 久久国产尿小便嘘嘘尿| 91黄色免费看| 亚洲国产电影在线观看| 久久青草欧美一区二区三区| 亚洲一区二区三区中文字幕| 国产精品12区| 欧美va亚洲va国产综合| 亚洲黄色小视频| 亚洲精选一二三| 国产寡妇亲子伦一区二区| 日韩视频免费观看高清完整版在线观看| 国产精品三级av在线播放| 国产精品精品国产色婷婷| 国产精品的网站| 国产露脸91国语对白| 欧美一级在线观看| 亚洲自拍与偷拍| 91婷婷韩国欧美一区二区| 色综合网色综合| 欧美日韩另类一区| 亚洲精品videosex极品| 91原创在线视频| 国产精品婷婷午夜在线观看| 国产一区日韩二区欧美三区| 日韩一区二区麻豆国产| 午夜不卡在线视频| 欧美中文字幕一二三区视频| 国产麻豆精品theporn| 欧美xxxx老人做受| 老司机免费视频一区二区三区| 在线播放欧美女士性生活| 午夜精品福利一区二区三区蜜桃| 欧美亚洲高清一区二区三区不卡| 亚洲色图在线视频| 天天综合日日夜夜精品| 欧美视频完全免费看| 视频一区免费在线观看| 这里只有精品99re| 欧美激情综合网| 成人免费看视频| 亚洲人被黑人高潮完整版| 男男gaygay亚洲| 精品理论电影在线观看| 国产精品一区二区三区乱码| 久久久久国产成人精品亚洲午夜| 国产曰批免费观看久久久| 国产日韩影视精品| 成人sese在线| 亚洲一区二区精品久久av| 日韩一区二区三区观看| 国产精品中文欧美| 综合自拍亚洲综合图不卡区| 在线观看日韩一区| 蜜桃精品在线观看| 日本一区二区三区在线观看| 色综合天天在线| 青青草视频一区| 国产精品无圣光一区二区| 91久久精品一区二区| 狠狠色狠狠色综合| 亚洲天堂久久久久久久| 欧美精品v国产精品v日韩精品 | 中文字幕第一页久久| 欧美日韩久久一区二区| 国产高清久久久| 亚洲综合区在线| 久久这里只精品最新地址| 欧美在线不卡视频| 国产综合久久久久影院| 一区二区三区四区在线免费观看| 日韩欧美亚洲另类制服综合在线| 国产a视频精品免费观看| 午夜精品视频在线观看| 中文字幕第一区第二区| 日韩一本二本av| 99久久久无码国产精品| 蜜桃一区二区三区四区| 一区二区三区美女视频| 欧美国产日韩亚洲一区| 欧美一区二区三区视频免费播放| www.激情成人| 激情综合网最新| 亚洲精品在线观看视频| 国产真实乱子伦精品视频| 亚洲成人一区二区在线观看| 在线成人免费观看| 99久久精品免费观看| 国产精品资源在线看| 欧美aaa在线| 亚洲成av人片www| |精品福利一区二区三区| 亚洲精品一区二区三区影院 | 日韩avvvv在线播放| 欧美一区二区三区影视| 欧洲一区在线电影| 92国产精品观看| 福利视频网站一区二区三区| 久久99国产精品免费| 日本欧美加勒比视频| 亚洲成人你懂的| 亚洲综合一区二区精品导航| 最新热久久免费视频| 国产精品欧美经典| 国产欧美日韩在线看| 国产日韩精品久久久| 国产亚洲欧美色| 91精彩视频在线观看| 9l国产精品久久久久麻豆| 成人国产精品免费网站| 国产大片一区二区| 国产成人精品三级| 国产尤物一区二区| 国产大陆精品国产| 懂色av一区二区在线播放| 国产成人精品影视| 99精品视频免费在线观看| 色婷婷综合久久久久中文| 成人av资源在线| 在线亚洲一区二区| 欧美日本一区二区三区四区| 欧美精品1区2区| 日韩免费在线观看| 欧美极品美女视频| 亚洲激情自拍偷拍| 午夜视频在线观看一区二区三区| 日本最新不卡在线| 国产在线播精品第三| 不卡电影一区二区三区| 在线观看不卡一区| 欧美成人艳星乳罩| 中日韩av电影| 亚洲成av人影院| 狠狠色丁香婷综合久久| 成人丝袜高跟foot| 欧美日韩国产综合视频在线观看| 日韩午夜电影在线观看| 国产精品少妇自拍| 亚洲123区在线观看| 狠狠色丁香久久婷婷综| 99视频一区二区三区| 欧美少妇bbb| 久久久久亚洲综合| 亚洲色图一区二区三区| 青青青伊人色综合久久| 99视频热这里只有精品免费| 91精品国产综合久久精品 | 成人免费av在线| 欧美午夜一区二区三区免费大片| 日韩欧美一区二区视频| 自拍视频在线观看一区二区| 久久国产精品99久久久久久老狼 | 国产精品18久久久久久vr| 色哟哟精品一区| 久久婷婷国产综合精品青草|