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

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

?? inffast.c

?? Evc編的一個在wince5.0上運行的flash播放器
?? C
字號:
/* 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 "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;
            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一区二区三区免费野_久草精品视频
天天色图综合网| 亚洲欧美日本在线| 91精品国产综合久久蜜臀| 色婷婷精品大在线视频| 色婷婷综合在线| 色婷婷久久久亚洲一区二区三区| fc2成人免费人成在线观看播放| 美国三级日本三级久久99| 日韩一区精品字幕| 激情图片小说一区| 国产一区二区伦理片| 成人在线综合网站| 日本乱人伦一区| 777午夜精品视频在线播放| 91精品免费在线| 国产午夜精品理论片a级大结局| 久久久精品综合| 亚洲丝袜另类动漫二区| 亚洲最大色网站| 日本不卡一区二区三区高清视频| 日韩精品欧美精品| 国产一区二区三区美女| 成人免费黄色大片| 色老头久久综合| 精品剧情在线观看| 国产精品伦一区二区三级视频| 亚洲少妇最新在线视频| 水蜜桃久久夜色精品一区的特点| 精品一区二区日韩| 91在线码无精品| 日韩一区二区免费视频| 中文字幕成人网| 婷婷国产在线综合| eeuss鲁片一区二区三区在线观看| 91视频com| 6080日韩午夜伦伦午夜伦| 久久蜜臀中文字幕| 亚洲夂夂婷婷色拍ww47| 国产精品影视网| 欧美在线啊v一区| 国产日韩精品视频一区| 一区二区三区免费看视频| 美女任你摸久久| 色综合天天狠狠| 国产欧美日韩卡一| 三级一区在线视频先锋 | 欧美一区二区啪啪| 亚洲国产高清不卡| 麻豆成人在线观看| 精品国产一区二区三区四区四 | 91精品国产91久久久久久一区二区| 精品国产91乱码一区二区三区| 亚洲精品国产精华液| 激情综合网激情| 欧美日韩在线免费视频| 国产精品看片你懂得| 玖玖九九国产精品| 欧美日韩在线亚洲一区蜜芽| 亚洲欧洲国产日韩| 国产成人在线视频免费播放| 日韩三级中文字幕| 亚洲123区在线观看| 99视频一区二区| 欧美激情一区二区三区| 极品少妇一区二区三区精品视频| 欧美日韩卡一卡二| 亚洲一二三专区| 91啦中文在线观看| 国产精品高清亚洲| www.欧美精品一二区| 国产亚洲精久久久久久| 国产中文字幕一区| 欧美xxxxx裸体时装秀| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美在线观看18| 亚洲一区二区三区视频在线 | 精品国产一区二区三区av性色| 亚洲地区一二三色| 国产日韩一级二级三级| 韩国精品主播一区二区在线观看| 欧美一区二区久久| 喷白浆一区二区| 精品黑人一区二区三区久久 | 国产尤物一区二区在线| 日韩精品在线一区二区| 久久99久久精品| 26uuu久久综合| 成人永久aaa| 亚洲激情图片小说视频| 精品视频1区2区| 日产欧产美韩系列久久99| 欧美成人免费网站| 国产精品影视在线观看| 亚洲人成在线观看一区二区| 一本大道av一区二区在线播放| 一区二区在线电影| 欧美日韩综合在线| 久久99久久久欧美国产| 日本一区二区视频在线观看| 91麻豆成人久久精品二区三区| 一区二区三区四区中文字幕| 欧美老肥妇做.爰bbww| 蜜桃视频在线观看一区二区| 久久久久久久久一| 91国偷自产一区二区使用方法| 亚欧色一区w666天堂| 久久久国产精品不卡| 日本乱码高清不卡字幕| 久久福利资源站| 亚洲欧洲av在线| 在线不卡免费欧美| 成人午夜伦理影院| 日韩av电影天堂| **欧美大码日韩| 亚洲乱码中文字幕| 欧美一区二区三区在线电影| 成人午夜在线播放| 日本va欧美va欧美va精品| 亚洲欧美在线高清| 欧美大片顶级少妇| 欧美日韩一区国产| av电影在线观看一区| 日韩av电影免费观看高清完整版 | 欧美精品九九99久久| 岛国一区二区三区| 乱一区二区av| 午夜视频在线观看一区二区三区| 国产欧美日韩亚州综合 | 亚洲一区自拍偷拍| 国产精品网站在线观看| 日韩一区二区三免费高清| 91麻豆视频网站| 风间由美一区二区av101| 五月综合激情日本mⅴ| 亚洲欧洲www| 国产精品女人毛片| 久久亚洲精品国产精品紫薇| 欧美日韩国产小视频在线观看| 国产大陆亚洲精品国产| 美女精品一区二区| 人人精品人人爱| 亚洲国产精品欧美一二99| 亚洲人成人一区二区在线观看 | 成人av资源网站| 国产成人亚洲精品狼色在线| 麻豆久久久久久| 婷婷开心久久网| 日韩高清国产一区在线| 亚洲综合免费观看高清完整版在线| 中文字幕在线一区免费| 国产网红主播福利一区二区| 精品99一区二区三区| www欧美成人18+| 国产欧美一区二区三区鸳鸯浴| 久久人人爽爽爽人久久久| 亚洲精品一区二区三区香蕉| 精品三级av在线| 久久久影视传媒| 五月综合激情婷婷六月色窝| 日日夜夜一区二区| 日本aⅴ免费视频一区二区三区 | 久久66热re国产| 老司机免费视频一区二区三区| 日韩综合一区二区| 麻豆一区二区99久久久久| 国产一区在线不卡| 成人h动漫精品一区二| 一本一道综合狠狠老| 欧美三级在线看| 日韩一区二区免费在线观看| 亚洲精品一区二区三区影院| 国产精品欧美综合在线| 亚洲色图一区二区| 日韩精品视频网站| 国产乱码精品一区二区三| youjizz国产精品| 欧美色综合天天久久综合精品| 欧美日韩国产一级片| 久久久久9999亚洲精品| 中文字幕一区av| 午夜亚洲福利老司机| 国产一区三区三区| 一本色道**综合亚洲精品蜜桃冫| 欧美男女性生活在线直播观看| 精品区一区二区| 亚洲天堂免费在线观看视频| 日韩中文字幕麻豆| 高清av一区二区| 久久久一区二区三区| 亚洲日本在线观看| 九九精品一区二区| 一本大道久久a久久精二百 | 成人av在线播放网址| 欧美色视频在线观看| 久久综合精品国产一区二区三区| 亚洲日本欧美天堂| 国产在线播放一区二区三区| 欧美三级韩国三级日本一级| 国产亚洲一本大道中文在线| 亚洲成年人影院|