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

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

?? inffast.c

?? < VC++視頻音頻開發(fā)>> 這本書的源碼
?? C
字號:
/* inffast.c -- process literals and length/distance pairs fast
 * Copyright (C) 1995-2002 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 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 {c=z->avail_in-n;c=(k>>3)<c?k>>3:c;n+=c;p-=c;k-=c<<3;}

/* 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;
            r = q - d;
            if (r < s->window)                  /* wrap if needed */
            {
              do {
                r += s->end - s->window;        /* force pointer in window */
              } while (r < s->window);          /* covers invalid distances */
              e = s->end - r;
              if (c > e)
              {
                c -= e;                         /* wrapped copy */
                do {
                    *q++ = *r++;
                } while (--e);
                r = s->window;
                do {
                    *q++ = *r++;
                } while (--c);
              }
              else                              /* normal copy */
              {
                *q++ = *r++;  c--;
                *q++ = *r++;  c--;
                do {
                    *q++ = *r++;
                } while (--c);
              }
            }
            else                                /* normal copy */
            {
              *q++ = *r++;  c--;
              *q++ = *r++;  c--;
              do {
                *q++ = *r++;
              } while (--c);
            }
            break;
          }
          else if ((e & 64) == 0)
          {
            t += t->base;
            e = (t += ((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)
      {
        t += t->base;
        if ((e = (t += ((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一区二区三区免费野_久草精品视频
91精品国产综合久久久蜜臀图片| 欧美视频一区二区三区四区| 欧美色欧美亚洲另类二区| 精品久久久三级丝袜| 亚洲精品国产第一综合99久久| 久久99这里只有精品| 欧美午夜在线一二页| 亚洲国产精品av| 男男成人高潮片免费网站| 色综合激情久久| 日本一区二区三区视频视频| 日韩精品欧美精品| 色综合久久综合网97色综合 | 国产激情一区二区三区四区| 欧美性大战久久久久久久| 国产精品国产三级国产普通话蜜臀 | 久久久影视传媒| 偷拍日韩校园综合在线| 99re这里只有精品6| 国产亚洲精久久久久久| 日本大胆欧美人术艺术动态| 在线观看日韩毛片| **欧美大码日韩| 顶级嫩模精品视频在线看| 日韩精品中文字幕一区二区三区 | 天堂午夜影视日韩欧美一区二区| av爱爱亚洲一区| 国产清纯美女被跳蛋高潮一区二区久久w | 中文字幕一区二区三区视频| 国产精品99久久久久久久女警| 日韩美女主播在线视频一区二区三区 | 日韩精品专区在线影院重磅| 日韩中文字幕亚洲一区二区va在线| 色婷婷国产精品综合在线观看| 中文成人综合网| 国产成人免费视频精品含羞草妖精| 337p日本欧洲亚洲大胆精品| 日韩不卡一区二区三区| 欧美日韩中文一区| 一区二区成人在线视频| 日本韩国欧美一区二区三区| 成人免费在线视频| 成人av电影免费在线播放| 欧美激情综合在线| 成人污污视频在线观看| 国产精品久久综合| 成人网男人的天堂| 1000部国产精品成人观看| 成人97人人超碰人人99| 中文字幕日韩av资源站| 一本色道久久加勒比精品| 亚洲精品国产视频| 欧美日韩一区国产| 日韩中文字幕一区二区三区| 欧美精品1区2区3区| 人人精品人人爱| 精品久久久久一区| 国产很黄免费观看久久| 国产精品三级av在线播放| av成人老司机| 亚洲大片免费看| 日韩三级视频在线观看| 国产一区在线观看麻豆| 久久伊人中文字幕| 懂色av一区二区在线播放| 亚洲欧美区自拍先锋| 在线观看国产精品网站| 日韩av在线播放中文字幕| 日韩精品一区二区三区老鸭窝 | 日本成人在线视频网站| 26uuu色噜噜精品一区| 成人黄色av网站在线| 亚洲男人的天堂在线观看| 欧美无人高清视频在线观看| 人人狠狠综合久久亚洲| xnxx国产精品| 不卡的av网站| 亚洲高清一区二区三区| 欧美大片在线观看一区| 国产91精品欧美| 亚洲伦理在线免费看| 欧美高清精品3d| 国产福利91精品一区二区三区| 中文字幕在线不卡一区二区三区| 欧美日韩一区二区三区不卡| 国内精品伊人久久久久av影院| 国产精品视频一二三区| 欧美日韩亚洲不卡| 国产精品资源网| 一区二区在线观看不卡| 精品日本一线二线三线不卡| 99视频精品在线| 日本va欧美va精品发布| 国产精品久久久久影院| 欧美美女黄视频| 国产99久久久久| 午夜精品福利在线| 日本一区二区在线不卡| 欧美日韩视频在线第一区| 国产一区二区精品久久| 亚洲综合色视频| 国产婷婷色一区二区三区四区| 91浏览器在线视频| 精品无人码麻豆乱码1区2区 | 久久免费午夜影院| 在线精品视频一区二区| 国产尤物一区二区| 午夜精品福利视频网站| 欧美激情一区二区三区蜜桃视频| 欧美日韩你懂的| 成人中文字幕电影| 日本午夜精品视频在线观看 | 精品国产一区久久| 色先锋aa成人| 国产精品一卡二卡在线观看| 亚洲国产成人av好男人在线观看| 国产性色一区二区| 欧美久久免费观看| 色综合中文综合网| 国产精品456露脸| 天天色天天操综合| 亚洲欧美日本韩国| 国产精品欧美极品| 日韩精品一区二区三区在线| 欧美日韩免费不卡视频一区二区三区 | 亚洲国产精品黑人久久久| 日韩一区二区精品在线观看| 色哟哟在线观看一区二区三区| 国产精品一区免费在线观看| 日本一道高清亚洲日美韩| 一区二区三区日本| 国产精品理伦片| 久久久亚洲综合| 日韩精品一区二区在线观看| 欧美日韩国产三级| 欧洲精品中文字幕| 91热门视频在线观看| 国产成人午夜精品影院观看视频| 另类小说色综合网站| 日韩在线卡一卡二| 亚洲一区二区三区四区在线免费观看| 国产亚洲欧美在线| 欧美精品一区二区三区在线播放| 91精品免费在线观看| 欧美日韩视频一区二区| 欧美私人免费视频| 欧美性受xxxx| 欧美三级电影网站| 欧美日韩精品电影| 欧美三级电影在线观看| 欧美日韩在线一区二区| 欧美三级日韩在线| 欧美日韩一级黄| 欧美视频一区在线观看| 欧美色图免费看| 欧美日韩国产精品自在自线| 欧美日韩国产一级二级| 欧美日本在线播放| 欧美裸体一区二区三区| 欧美一区二区视频观看视频| 欧美电影一区二区三区| 制服丝袜亚洲色图| 欧美一区二区在线不卡| 日韩午夜三级在线| 日韩欧美综合在线| 精品国产sm最大网站免费看| 2020国产精品久久精品美国| 国产色产综合产在线视频| 国产日韩精品久久久| 国产精品视频一二三| 国产精品第四页| 国产精品久久久久影院老司| 亚洲天天做日日做天天谢日日欢 | 91久久精品网| 一本到不卡精品视频在线观看| 裸体歌舞表演一区二区| 精品一区二区影视| 韩日欧美一区二区三区| 国产精品996| 粉嫩在线一区二区三区视频| 国产成人啪免费观看软件| 99精品国产99久久久久久白柏| aaa国产一区| 欧美三级日韩在线| 欧美成人一区二区三区在线观看| 日韩一级成人av| 精品久久国产老人久久综合| 日韩欧美国产1| 国产精品久久久久久一区二区三区 | 蜜臀久久99精品久久久久久9| 婷婷开心激情综合| 蜜桃一区二区三区在线| 国产成a人亚洲| 99re这里只有精品首页| 欧美无砖砖区免费| 91精品午夜视频| 国产喷白浆一区二区三区| 亚洲色图第一区| 午夜精品一区二区三区三上悠亚| 九九视频精品免费|