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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? infcodes.c

?? QT 開發(fā)環(huán)境里面一個很重要的文件
?? C
字號:
/* infcodes.c -- process literals and length/distance pairs * 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"/* simplify the use of the inflate_huft type with some defines */#define exop word.what.Exop#define bits word.what.Bitstypedef enum {        /* waiting for "i:"=input, "o:"=output, "x:"=nothing */      START,    /* x: set up for LEN */      LEN,      /* i: get length/literal/eob next */      LENEXT,   /* i: getting length extra (have base) */      DIST,     /* i: get distance next */      DISTEXT,  /* i: getting distance extra */      COPY,     /* o: copying bytes in window, waiting for space */      LIT,      /* o: got literal, waiting for output space */      WASH,     /* o: got eob, possibly still output waiting */      END,      /* x: got eob and all data flushed */      BADCODE}  /* x: got error */inflate_codes_mode;/* inflate codes private state */struct inflate_codes_state {  /* mode */  inflate_codes_mode mode;      /* current inflate_codes mode */  /* mode dependent information */  uInt len;  union {    struct {      inflate_huft *tree;       /* pointer into tree */      uInt need;                /* bits needed */    } code;             /* if LEN or DIST, where in tree */    uInt lit;           /* if LIT, literal */    struct {      uInt get;                 /* bits to get for extra */      uInt dist;                /* distance back to copy from */    } copy;             /* if EXT or COPY, where and how much */  } sub;                /* submode */  /* mode independent information */  Byte lbits;           /* ltree bits decoded per branch */  Byte dbits;           /* dtree bits decoder per branch */  inflate_huft *ltree;          /* literal/length/eob tree */  inflate_huft *dtree;          /* distance tree */};local inflate_codes_statef *inflate_codes_new( /* bl, bd, tl, td, z) */uInt bl, uInt bd,inflate_huft *tl,inflate_huft *td, /* need separate declaration for Borland C++ */z_streamp z ){  inflate_codes_statef *c;  if ((c = (inflate_codes_statef *)       ZALLOC(z,1,sizeof(struct inflate_codes_state))) != Z_NULL)  {    c->mode = START;    c->lbits = (Byte)bl;    c->dbits = (Byte)bd;    c->ltree = tl;    c->dtree = td;    Tracev((stderr, "inflate:       codes new\n"));  }  return c;}local int inflate_codes( /* s, z, r) */inflate_blocks_statef *s,z_streamp z,int r ){  uInt j;               /* temporary storage */  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 */  Bytef *f;             /* pointer to copy strings from */  inflate_codes_statef *c = s->sub.decode.codes;  /* codes state */  /* copy input/output information to locals (UPDATE macro restores) */  LOAD  /* process input and output based on current state */  while (1) switch (c->mode)  {             /* waiting for "i:"=input, "o:"=output, "x:"=nothing */    case START:         /* x: set up for LEN */#ifndef SLOW      if (m >= 258 && n >= 10)      {        UPDATE        r = inflate_fast(c->lbits, c->dbits, c->ltree, c->dtree, s, z);        LOAD        if (r != Z_OK)        {          c->mode = r == Z_STREAM_END ? WASH : BADCODE;          break;        }      }#endif /* !SLOW */      c->sub.code.need = c->lbits;      c->sub.code.tree = c->ltree;      c->mode = LEN;    case LEN:           /* i: get length/literal/eob next */      j = c->sub.code.need;      NEEDBITS(j)      t = c->sub.code.tree + ((uInt)b & inflate_mask[j]);      DUMPBITS(t->bits)      e = (uInt)(t->exop);      if (e == 0)               /* literal */      {        c->sub.lit = t->base;        Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ?                 "inflate:         literal '%c'\n" :                 "inflate:         literal 0x%02x\n", t->base));        c->mode = LIT;        break;      }      if (e & 16)               /* length */      {        c->sub.copy.get = e & 15;        c->len = t->base;        c->mode = LENEXT;        break;      }      if ((e & 64) == 0)        /* next table */      {        c->sub.code.need = e;        c->sub.code.tree = t + t->base;        break;      }      if (e & 32)               /* end of block */      {        Tracevv((stderr, "inflate:         end of block\n"));        c->mode = WASH;        break;      }      c->mode = BADCODE;        /* invalid code */      z->msg = (char*)"invalid literal/length code";      r = Z_DATA_ERROR;      LEAVE    case LENEXT:        /* i: getting length extra (have base) */      j = c->sub.copy.get;      NEEDBITS(j)      c->len += (uInt)b & inflate_mask[j];      DUMPBITS(j)      c->sub.code.need = c->dbits;      c->sub.code.tree = c->dtree;      Tracevv((stderr, "inflate:         length %u\n", c->len));      c->mode = DIST;    case DIST:          /* i: get distance next */      j = c->sub.code.need;      NEEDBITS(j)      t = c->sub.code.tree + ((uInt)b & inflate_mask[j]);      DUMPBITS(t->bits)      e = (uInt)(t->exop);      if (e & 16)               /* distance */      {        c->sub.copy.get = e & 15;        c->sub.copy.dist = t->base;        c->mode = DISTEXT;        break;      }      if ((e & 64) == 0)        /* next table */      {        c->sub.code.need = e;        c->sub.code.tree = t + t->base;        break;      }      c->mode = BADCODE;        /* invalid code */      z->msg = (char*)"invalid distance code";      r = Z_DATA_ERROR;      LEAVE    case DISTEXT:       /* i: getting distance extra */      j = c->sub.copy.get;      NEEDBITS(j)      c->sub.copy.dist += (uInt)b & inflate_mask[j];      DUMPBITS(j)      Tracevv((stderr, "inflate:         distance %u\n", c->sub.copy.dist));      c->mode = COPY;    case COPY:          /* o: copying bytes in window, waiting for space */      f = q - c->sub.copy.dist;      while (f < s->window)             /* modulo window size-"while" instead */        f += s->end - s->window;        /* of "if" handles invalid distances */      while (c->len)      {        NEEDOUT        OUTBYTE(*f++)        if (f == s->end)          f = s->window;        c->len--;      }      c->mode = START;      break;    case LIT:           /* o: got literal, waiting for output space */      NEEDOUT      OUTBYTE(c->sub.lit)      c->mode = START;      break;    case WASH:          /* o: got eob, possibly more output */      if (k > 7)        /* return unused byte, if any */      {        Assert(k < 16, "inflate_codes grabbed too many bytes")        k -= 8;        n++;        p--;            /* can always return one */      }      FLUSH      if (s->read != s->write)        LEAVE      c->mode = END;    case END:      r = Z_STREAM_END;      LEAVE    case BADCODE:       /* x: got error */      r = Z_DATA_ERROR;      LEAVE    default:      r = Z_STREAM_ERROR;      LEAVE  }#ifdef NEED_DUMMY_RETURN  return Z_STREAM_ERROR;  /* Some dumb compilers complain without this */#endif}local void inflate_codes_free( /* c, z) */inflate_codes_statef *c,z_streamp z ){  ZFREE(z, c);  Tracev((stderr, "inflate:       codes free\n"));}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品久久久久久久99樱桃| 国产乱人伦偷精品视频免下载| 久久精品理论片| 欧美区一区二区三区| 精品毛片乱码1区2区3区| 亚洲伦在线观看| 99久久免费国产| 欧美一二区视频| 国产日韩影视精品| 首页综合国产亚洲丝袜| 色丁香久综合在线久综合在线观看 | 成人性生交大片免费 | 亚洲成av人片在线| 在线看国产一区二区| 国产清纯白嫩初高生在线观看91 | 国产精品丝袜久久久久久app| 韩国精品主播一区二区在线观看 | 精品少妇一区二区三区| 午夜欧美在线一二页| 色偷偷久久一区二区三区| 亚洲三级电影全部在线观看高清| 国产原创一区二区| 国产三区在线成人av| 99麻豆久久久国产精品免费| 亚洲一区二区在线免费观看视频| 欧美日韩中文另类| 日韩国产欧美在线视频| 久久影院电视剧免费观看| 精品一区二区在线看| 亚洲自拍与偷拍| 欧美www视频| 成人免费三级在线| 日本伊人色综合网| 精品国产伦一区二区三区观看方式 | 久久免费美女视频| 成人毛片老司机大片| 亚洲一区成人在线| 欧美视频一区二区| 91视频免费看| 国产精品乱码久久久久久| 成人精品国产一区二区4080| 樱桃视频在线观看一区| 欧美大白屁股肥臀xxxxxx| 国产精品综合一区二区三区| 亚洲午夜精品17c| 综合电影一区二区三区| 中文字幕免费一区| 欧美大片一区二区三区| 欧美日韩在线三区| 欧美中文字幕一区二区三区 | 丝袜美腿亚洲色图| 一区二区久久久久久| 日韩一区欧美小说| 国产亚洲美州欧州综合国| 久久综合久久综合九色| 91麻豆精品久久久久蜜臀| 欧美最新大片在线看| 色婷婷激情综合| 欧亚洲嫩模精品一区三区| 欧美伊人久久久久久午夜久久久久| 99国产一区二区三精品乱码| av中文字幕亚洲| 色狠狠色狠狠综合| 欧美日韩一区二区三区在线看| 91福利国产精品| 精品视频一区三区九区| 欧美日韩中文字幕一区二区| 欧美一卡在线观看| 精品国产99国产精品| 中文字幕免费不卡| 亚洲综合丝袜美腿| 久久精品国产99国产精品| 国产黄人亚洲片| 日韩一卡二卡三卡四卡| 精品国产乱码久久久久久蜜臀 | 国产欧美一区二区精品性色超碰| 一区二区高清视频在线观看| 丁香啪啪综合成人亚洲小说| 日韩美女一区二区三区四区| 天天操天天干天天综合网| 日本韩国精品在线| 一区二区三区精品视频在线| 国产精品1区2区3区| 国产成都精品91一区二区三| 91国产免费看| 国产精品天美传媒| 激情五月婷婷综合| 欧美视频中文字幕| 一区二区三区日韩在线观看| 国产成人啪午夜精品网站男同| 欧美久久久影院| 一区二区三区久久| 色偷偷久久人人79超碰人人澡 | 欧美久久婷婷综合色| 中文字幕在线一区免费| 国产中文一区二区三区| 正在播放亚洲一区| 亚洲小少妇裸体bbw| 91久久人澡人人添人人爽欧美| 国产校园另类小说区| 国产宾馆实践打屁股91| 日韩美女一区二区三区四区| 男人的天堂亚洲一区| 日韩一区二区在线播放| 懂色av中文一区二区三区| 国产无遮挡一区二区三区毛片日本| 国产精品久久久久精k8| 亚洲精选免费视频| 成人黄色软件下载| 欧美日韩五月天| 久久夜色精品国产噜噜av| 中文字幕视频一区| 国产一区视频导航| 欧美成人bangbros| 国产精品一区二区三区四区| 久久久不卡网国产精品一区| 国产成人一级电影| 国产三级精品视频| 在线看不卡av| 久久精品国产澳门| 国产精品久久久久久久第一福利| 99久久国产综合色|国产精品| 亚洲愉拍自拍另类高清精品| 日韩一区二区电影在线| 国产成人综合亚洲91猫咪| 国产精品网站在线播放| 欧美日韩在线播放一区| 国产福利一区二区| 偷窥少妇高潮呻吟av久久免费| 国产午夜亚洲精品不卡| 欧美中文字幕久久| 成人污视频在线观看| 日韩精品电影在线| 亚洲综合丁香婷婷六月香| 久久久久久久综合| 91精品国产麻豆| 一本色道综合亚洲| 成人性生交大合| 狠狠色综合色综合网络| 亚洲成人一区在线| 一区二区三区.www| 国产欧美日韩视频在线观看| 精品久久久久久久久久久久包黑料 | 亚洲欧美在线视频观看| 久久久久高清精品| 精品美女被调教视频大全网站| 欧美人妇做爰xxxⅹ性高电影| 91美女片黄在线观看91美女| 风流少妇一区二区| 国产成人在线观看| 国产aⅴ综合色| eeuss影院一区二区三区| 国产白丝精品91爽爽久久| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲激情欧美激情| 亚洲狠狠丁香婷婷综合久久久| 亚洲人成伊人成综合网小说| 一区二区三区在线观看国产| 亚洲乱码国产乱码精品精可以看 | 日韩高清一区在线| 日日摸夜夜添夜夜添国产精品 | 日韩av在线发布| 久久机这里只有精品| 国产成人在线视频网站| 97久久超碰精品国产| 欧美日韩第一区日日骚| 久久众筹精品私拍模特| 国产精品拍天天在线| 亚洲国产成人精品视频| 麻豆精品久久久| caoporn国产一区二区| 欧美精品日韩综合在线| 国产午夜精品一区二区三区嫩草| 亚洲天堂免费在线观看视频| 五月激情六月综合| 风间由美一区二区三区在线观看 | 日产国产欧美视频一区精品| 成人丝袜18视频在线观看| 在线观看一区二区视频| 久久精品男人的天堂| 五月综合激情网| 色综合天天综合网天天狠天天| 91久久精品网| www.欧美日韩| 亚洲精品中文字幕在线观看| 欧美日韩另类一区| 亚洲资源中文字幕| 色偷偷成人一区二区三区91 | 在线免费一区三区| 一区二区国产视频| 在线观看免费成人| 日日骚欧美日韩| 欧美videos中文字幕| 国产一区二区在线观看免费| 国产精品美女www爽爽爽| 一本大道综合伊人精品热热| 日韩国产欧美视频| 国产欧美视频一区二区| 色系网站成人免费| 国产一区二区三区|