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

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

?? inffast.cpp

?? 一個C語言實現的壓縮解壓的工具代碼
?? CPP
字號:
/* inffast.c -- process literals and length/distance pairs fast
 * Copyright (C) 1995-1998 Mark Adler
 * For conditions of distribution and use, see copyright notice in zlib.h 
 */
#include "stdafx.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(uInt bl, uInt 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)
          {
            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一区二区三区免费野_久草精品视频
欧美日韩在线亚洲一区蜜芽| 欧美性欧美巨大黑白大战| 五月天丁香久久| 亚洲图片一区二区| 亚洲另类春色国产| 一区二区三区日本| 一卡二卡三卡日韩欧美| 亚欧色一区w666天堂| 首页欧美精品中文字幕| 日本aⅴ亚洲精品中文乱码| 丝袜美腿一区二区三区| 免费人成精品欧美精品| 久久国产精品99久久人人澡| 国产成人精品影院| 91玉足脚交白嫩脚丫在线播放| 色综合夜色一区| 欧美精品精品一区| 日韩精品一区二区三区四区| xvideos.蜜桃一区二区| 中文字幕制服丝袜一区二区三区| 亚洲视频狠狠干| 亚洲午夜精品在线| 久久99热99| 播五月开心婷婷综合| 91高清视频免费看| 欧美成人女星排名| 成人免费小视频| 亚州成人在线电影| 国产乱码精品一区二区三区av| 波多野结衣中文一区| 欧美在线高清视频| 久久视频一区二区| 亚洲愉拍自拍另类高清精品| 免费成人在线网站| 一本色道久久综合亚洲aⅴ蜜桃| 91精品国产综合久久久久久久久久| 精品99999| 亚洲成人午夜电影| 成人少妇影院yyyy| 欧美一区二区视频免费观看| 国产精品久久久久久久久免费相片| 亚洲一区av在线| 粉嫩绯色av一区二区在线观看| 欧美在线看片a免费观看| 久久久777精品电影网影网| 国产欧美1区2区3区| 亚洲成a人v欧美综合天堂| 国产在线精品一区二区| 欧美日本精品一区二区三区| 国产亚洲1区2区3区| 日韩中文欧美在线| 欧美午夜精品免费| 亚洲啪啪综合av一区二区三区| 久久99精品国产.久久久久| 欧美亚洲自拍偷拍| 国产精品久久看| 老色鬼精品视频在线观看播放| 在线视频综合导航| 综合亚洲深深色噜噜狠狠网站| 国产伦精品一区二区三区视频青涩| 欧美日韩成人综合| 亚洲欧美日韩综合aⅴ视频| 丁香一区二区三区| 久久青草国产手机看片福利盒子 | 亚洲精品va在线观看| 国产精品一级二级三级| 日韩欧美久久久| 肉色丝袜一区二区| 欧美日韩高清一区二区| 亚洲在线视频免费观看| 欧美视频一区在线| 青娱乐精品视频在线| 91国内精品野花午夜精品| 中文字幕亚洲在| 97se狠狠狠综合亚洲狠狠| 国产精品国产三级国产aⅴ中文| 成人爽a毛片一区二区免费| 国产日韩av一区二区| 风间由美性色一区二区三区| 国产亚洲午夜高清国产拍精品| 久久99精品国产麻豆不卡| 精品久久久久久久久久久久包黑料 | 午夜a成v人精品| 欧美日韩综合色| 午夜伦欧美伦电影理论片| 欧美日韩国产经典色站一区二区三区 | 美日韩一区二区三区| 日韩午夜中文字幕| 国产麻豆成人传媒免费观看| 国产午夜精品一区二区三区视频| 国产乱码精品一区二区三| 中文字幕日韩欧美一区二区三区| aaa亚洲精品| 亚洲一二三级电影| 欧美精品777| 国产一区二区三区免费| 亚洲日本一区二区三区| 欧美精品少妇一区二区三区| 久久精品国产成人一区二区三区 | 国产精品伊人色| 国产精品护士白丝一区av| 欧美调教femdomvk| 麻豆精品国产91久久久久久 | 91久久一区二区| 麻豆精品久久久| 国产精品国产三级国产aⅴ入口| 色综合亚洲欧洲| 精品一区二区三区在线观看| 国产精品无人区| 欧美三级三级三级| 国产成人午夜高潮毛片| 亚洲综合自拍偷拍| 欧美一区永久视频免费观看| 懂色av中文一区二区三区| 亚洲成人综合在线| 久久精品亚洲麻豆av一区二区| 欧美在线观看18| 国产高清久久久久| 亚洲最新在线观看| 日本一区二区不卡视频| 日韩一区二区三区电影在线观看| 成人视屏免费看| 精品在线视频一区| 亚洲va韩国va欧美va精品| 亚洲欧洲av另类| 久久综合色播五月| 91精品国产一区二区人妖| 色综合久久中文字幕| 蜜臀久久99精品久久久久久9| 亚洲欧美色一区| 国产精品盗摄一区二区三区| 欧美成人video| 51久久夜色精品国产麻豆| 92精品国产成人观看免费 | 色94色欧美sute亚洲线路二| 极品少妇xxxx精品少妇| 国产成人午夜电影网| 蜜桃视频一区二区| 日本美女一区二区三区| 亚洲一区二三区| 洋洋成人永久网站入口| 亚洲手机成人高清视频| 亚洲视频一二区| 亚洲乱码中文字幕| 亚洲裸体在线观看| 亚洲欧洲日韩在线| 国产精品福利电影一区二区三区四区| 欧美精品一区二区三区蜜桃视频 | 91网址在线看| 99re在线精品| 95精品视频在线| 色综合中文字幕国产| 成人自拍视频在线观看| 国产一区二区主播在线| 国产精品一二三区| 国产乱淫av一区二区三区| 国产乱一区二区| 成人一级黄色片| 91麻豆免费在线观看| 色婷婷综合久久久久中文| 91婷婷韩国欧美一区二区| 色天天综合久久久久综合片| 色婷婷精品久久二区二区蜜臀av| 91传媒视频在线播放| 欧美色综合影院| 欧美一二三区精品| 久久久三级国产网站| 国产欧美日韩在线| 亚洲男同性恋视频| 亚洲最大成人网4388xx| 免费在线观看日韩欧美| 粉嫩av亚洲一区二区图片| 一本大道久久a久久精二百| 欧美亚洲免费在线一区| 欧美一区二区三区免费观看视频| 久久综合九色综合欧美亚洲| 中文在线一区二区| 亚洲免费成人av| 久久97超碰国产精品超碰| 成人不卡免费av| 欧美丰满美乳xxx高潮www| 精品国产污污免费网站入口| 国产精品国产精品国产专区不蜜| 午夜欧美在线一二页| 国产一区二区三区香蕉| 欧美无砖专区一中文字| 精品第一国产综合精品aⅴ| 亚洲人成网站影音先锋播放| 青青草一区二区三区| 成人久久视频在线观看| 777午夜精品免费视频| 国产精品久久久久影院老司 | 国产午夜精品理论片a级大结局| 亚洲激情五月婷婷| 激情图区综合网| 欧美色视频一区| 日本一区二区动态图| 久久99精品国产.久久久久| 欧美亚日韩国产aⅴ精品中极品| 欧美精品一区二区三区视频 |