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

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

?? inflatelib.c

?? vxworks的完整的源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
      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->next;        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->next;        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 */#ifndef __TURBOC__ /* Turbo C bug for following expression */      f = (uInt)(q - s->window) < c->sub.copy.dist ?          s->end - (c->sub.copy.dist - (q - s->window)) :          q - c->sub.copy.dist;#else      f = q - c->sub.copy.dist;      if ((uInt)(q - s->window) < c->sub.copy.dist)        f = s->end - (c->sub.copy.dist - (uInt)(q - s->window));#endif      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 */      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  }}/******************************************************************************** inflate_codes_free - frees inflate codes**/ static void inflate_codes_free    (    inflate_codes_statef *c,    z_streamp z    )    {    ZFREE(z, c);    }/******************************************************************************** inflate_blocks_reset - resets inflate blocks**/ static void inflate_blocks_reset(s, z, c)inflate_blocks_statef *s;z_streamp z;uLong *c;{  if (s->checkfn != Z_NULL)    *c = s->check;  if (s->mode == BTREE || s->mode == DTREE)    ZFREE(z, s->sub.trees.blens);  if (s->mode == CODES)  {    inflate_codes_free(s->sub.decode.codes, z);    inflate_trees_free(s->sub.decode.td, z);    inflate_trees_free(s->sub.decode.tl, z);  }  s->mode = TYPE;  s->bitk = 0;  s->bitb = 0;  s->read = s->write = s->window;  if (s->checkfn != Z_NULL)    z->adler = s->check = (*s->checkfn)(0L, Z_NULL, 0);  Trace((stderr, "inflate:   blocks reset\n"));}/******************************************************************************** inflate_blocks_new - allocates new inflate blocks**/ static inflate_blocks_statef *inflate_blocks_new(z, c, w)z_streamp z;check_func c;uInt w;{  inflate_blocks_statef *s;  if ((s = (inflate_blocks_statef *)ZALLOC       (z,1,sizeof(struct inflate_blocks_state))) == Z_NULL)    return s;  if ((s->window = (Byte *)ZALLOC(z, 1, w)) == Z_NULL)  {    ZFREE(z, s);    return Z_NULL;  }  s->end = s->window + w;  s->checkfn = c;  s->mode = TYPE;  Trace((stderr, "inflate:   blocks allocated\n"));  inflate_blocks_reset(s, z, &s->check);  return s;}/******************************************************************************** inflate_block - inflates a block*/ static int inflate_blocks(s, z, r)inflate_blocks_statef *s;z_streamp z;int r;{  uInt t;               /* temporary storage */  uLong b;              /* bit buffer */  uInt k;               /* bits in bit buffer */  Byte *p;             /* input data pointer */  uInt n;               /* bytes available there */  Byte *q;             /* output window write pointer */  uInt m;               /* bytes to end of window or read pointer */  /* copy input/output information to locals (UPDATE macro restores) */  LOAD  /* process input based on current state */  while (1) switch (s->mode)  {    case TYPE:      NEEDBITS(3)      t = (uInt)b & 7;      s->last = t & 1;      switch (t >> 1)      {        case 0:                         /* stored */          Trace((stderr, "inflate:     stored block%s\n",                 s->last ? " (last)" : ""));          DUMPBITS(3)          t = k & 7;                    /* go to byte boundary */          DUMPBITS(t)          s->mode = LENS;               /* get length of stored block */          break;        case 1:                         /* fixed */          Trace((stderr, "inflate:     fixed codes block%s\n",                 s->last ? " (last)" : ""));          {            uInt bl, bd;            inflate_huft *tl, *td;            inflate_trees_fixed(&bl, &bd, &tl, &td);            s->sub.decode.codes = inflate_codes_new(bl, bd, tl, td, z);            if (s->sub.decode.codes == Z_NULL)            {              r = Z_MEM_ERROR;              LEAVE            }            s->sub.decode.tl = Z_NULL;  /* don't try to free these */            s->sub.decode.td = Z_NULL;          }          DUMPBITS(3)          s->mode = CODES;          break;        case 2:                         /* dynamic */          Trace((stderr, "inflate:     dynamic codes block%s\n",                 s->last ? " (last)" : ""));          DUMPBITS(3)          s->mode = TABLE;          break;        case 3:                         /* illegal */          DUMPBITS(3)          s->mode = BAD;          z->msg = (char*)"invalid block type";          r = Z_DATA_ERROR;          LEAVE      }      break;    case LENS:      NEEDBITS(32)      if ((((~b) >> 16) & 0xffff) != (b & 0xffff))      {        s->mode = BAD;        z->msg = (char*)"invalid stored block lengths";        r = Z_DATA_ERROR;        LEAVE      }      s->sub.left = (uInt)b & 0xffff;      b = k = 0;                      /* dump bits */      Tracev((stderr, "inflate:       stored length %u\n", s->sub.left));      s->mode = s->sub.left ? STORED : (s->last ? DRY : TYPE);      break;    case STORED:      if (n == 0)        LEAVE      NEEDOUT      t = s->sub.left;      if (t > n) t = n;      if (t > m) t = m;      memcpy(q, p, t);      p += t;  n -= t;      q += t;  m -= t;      if ((s->sub.left -= t) != 0)        break;      Tracev((stderr, "inflate:       stored end, %lu total out\n",              z->total_out + (q >= s->read ? q - s->read :              (s->end - s->read) + (q - s->window))));      s->mode = s->last ? DRY : TYPE;      break;    case TABLE:      NEEDBITS(14)      s->sub.trees.table = t = (uInt)b & 0x3fff;      if ((t & 0x1f) > 29 || ((t >> 5) & 0x1f) > 29)      {        s->mode = BAD;        z->msg = (char*)"too many length or distance symbols";        r = Z_DATA_ERROR;        LEAVE      }      t = 258 + (t & 0x1f) + ((t >> 5) & 0x1f);      if (t < 19)        t = 19;      if ((s->sub.trees.blens = (uInt*)ZALLOC(z, t, sizeof(uInt))) == Z_NULL)      {        r = Z_MEM_ERROR;        LEAVE      }      DUMPBITS(14)      s->sub.trees.index = 0;      Tracev((stderr, "inflate:       table sizes ok\n"));      s->mode = BTREE;    case BTREE:      while (s->sub.trees.index < 4 + (s->sub.trees.table >> 10))      {        NEEDBITS(3)        s->sub.trees.blens[border[s->sub.trees.index++]] = (uInt)b & 7;        DUMPBITS(3)      }      while (s->sub.trees.index < 19)        s->sub.trees.blens[border[s->sub.trees.index++]] = 0;      s->sub.trees.bb = 7;      t = inflate_trees_bits(s->sub.trees.blens, &s->sub.trees.bb,                             &s->sub.trees.tb, z);      if (t != Z_OK)      {        r = t;        if (r == Z_DATA_ERROR)          s->mode = BAD;        LEAVE      }      s->sub.trees.index = 0;      Tracev((stderr, "inflate:       bits tree ok\n"));      s->mode = DTREE;    case DTREE:      while (t = s->sub.trees.table,             s->sub.trees.index < 258 + (t & 0x1f) + ((t >> 5) & 0x1f))      {        inflate_huft *h;        uInt i, j, c;        t = s->sub.trees.bb;        NEEDBITS(t)        h = s->sub.trees.tb + ((uInt)b & inflate_mask[t]);        t = h->word.what.Bits;        c = h->more.Base;        if (c < 16)        {          DUMPBITS(t)          s->sub.trees.blens[s->sub.trees.index++] = c;        }        else /* c == 16..18 */        {          i = c == 18 ? 7 : c - 14;          j = c == 18 ? 11 : 3;          NEEDBITS(t + i)          DUMPBITS(t)          j += (uInt)b & inflate_mask[i];          DUMPBITS(i)          i = s->sub.trees.index;          t = s->sub.trees.table;          if (i + j > 258 + (t & 0x1f) + ((t >> 5) & 0x1f) ||              (c == 16 && i < 1))          {            s->mode = BAD;            z->msg = (char*)"invalid bit length repeat";            r = Z_DATA_ERROR;            LEAVE          }          c = c == 16 ? s->sub.trees.blens[i - 1] : 0;          do {            s->sub.trees.blens[i++] = c;          } while (--j);          s->sub.trees.index = i;        }      }      inflate_trees_free(s->sub.trees.tb, z);      s->sub.trees.tb = Z_NULL;      {        uInt bl, bd;        inflate_huft *tl, *td;        inflate_codes_statef *c;        bl = 9;         /* must be <= 9 for lookahead assumptions */        bd = 6;         /* must be <= 9 for lookahead assumptions */        t = s->sub.trees.table;        t = inflate_trees_dynamic(257 + (t & 0x1f), 1 + ((t >> 5) & 0x1f),                                  s->sub.trees.blens, &bl, &bd, &tl, &td, z);        if (t != Z_OK)        {          if (t == (uInt)Z_DATA_ERROR)            s->mode = BAD;          r = t;          LEAVE        }        Tracev((stderr, "inflate:       trees ok, %d * %d bytes used\n",              inflate_hufts, sizeof(inflate_huft)));        if ((c = inflate_codes_new(bl, bd, tl, td, z)) == Z_NULL)        {          inflate_trees_free(td, z);          inflate_trees_free(tl, z);          r = Z_MEM_ERROR;          LEAVE        }        ZFREE(z, s->sub.trees.blens);        s->sub.decode.codes = c;        s->sub.decode.tl = tl;        s->sub.decode.td = td;      }      s->mode = CODES;    case CODES:      UPDATE      if ((r = inflate_codes(s, z, r)) != Z_STREAM_END)        return

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本到高清视频免费精品| 欧美日韩精品电影| 欧美精品v国产精品v日韩精品| 日韩精品最新网址| 专区另类欧美日韩| 激情偷乱视频一区二区三区| 色婷婷av一区二区三区之一色屋| 精品少妇一区二区三区 | 日本一区二区久久| 欧美aⅴ一区二区三区视频| 色哟哟一区二区| 国产精品毛片大码女人| 麻豆91精品视频| 欧美男人的天堂一二区| 一区二区在线观看免费视频播放| 国产一区二区伦理片| 欧美一区二区福利在线| 亚洲资源在线观看| 91免费看`日韩一区二区| 久久久久久久性| 国产一区二区三区视频在线播放| 欧美片网站yy| 亚洲h动漫在线| 欧美综合天天夜夜久久| 伊人开心综合网| 91久久香蕉国产日韩欧美9色| 国产精品免费丝袜| 成人国产精品视频| 国产精品对白交换视频| 成人激情小说网站| 国产精品成人在线观看| 国产成人亚洲综合色影视| 国产亚洲综合在线| 国产黑丝在线一区二区三区| 国产亚洲一区二区三区在线观看 | 成人福利视频在线| 国产精品丝袜在线| 91丨九色porny丨蝌蚪| 国产精品电影一区二区| 99国产欧美另类久久久精品| 亚洲人成网站色在线观看| thepron国产精品| 亚洲欧美激情插 | 亚洲成人你懂的| 欧美猛男男办公室激情| 久久丁香综合五月国产三级网站| 日韩三级电影网址| 国产成人午夜精品5599| 国产精品久久久久永久免费观看| 91麻豆文化传媒在线观看| 亚洲精品菠萝久久久久久久| 欧美日韩午夜在线视频| 久久激情综合网| 国产精品天天看| 欧美色大人视频| 狠狠狠色丁香婷婷综合久久五月| 国产三级精品三级| 色8久久人人97超碰香蕉987| 亚洲va欧美va人人爽| 久久综合一区二区| 91丝袜美腿高跟国产极品老师| 午夜亚洲福利老司机| 久久久噜噜噜久久中文字幕色伊伊| 成人三级伦理片| 爽爽淫人综合网网站| 国产日韩av一区| 欧美三级视频在线观看| 国产一区二区三区四区在线观看| 亚洲图片激情小说| 日韩欧美成人午夜| 色哟哟一区二区三区| 国产一区亚洲一区| 亚洲图片欧美综合| 中文字幕久久午夜不卡| 欧美日韩国产成人在线免费| 福利电影一区二区| 奇米色777欧美一区二区| 国产精品不卡一区二区三区| 日韩一级完整毛片| 在线视频你懂得一区| 国产精品亚洲第一 | 亚洲一区日韩精品中文字幕| 欧美岛国在线观看| 91行情网站电视在线观看高清版| 久88久久88久久久| 亚洲成人精品在线观看| 国产精品二三区| 国产日本亚洲高清| 日韩一区二区在线观看视频| 色域天天综合网| 成人一级黄色片| 国产一区二区视频在线播放| 日韩影院精彩在线| 亚洲欧美欧美一区二区三区| 日本一区二区成人在线| 日韩欧美国产不卡| 在线播放视频一区| 欧美日韩在线免费视频| 97国产精品videossex| 丁香天五香天堂综合| 韩国午夜理伦三级不卡影院| 日本大胆欧美人术艺术动态 | 大白屁股一区二区视频| 国产自产2019最新不卡| 精品一区二区三区在线播放视频| 亚洲成人中文在线| 亚洲一区二区三区四区不卡 | 亚洲国产成人私人影院tom| 精品va天堂亚洲国产| 欧美巨大另类极品videosbest | 成人免费视频网站在线观看| 国产精品91一区二区| 国产精品 欧美精品| 国产伦精品一区二区三区免费| 久久精品噜噜噜成人88aⅴ | 2023国产精品视频| 精品国产乱码久久久久久蜜臀| 日韩视频123| 日韩女同互慰一区二区| 欧美精品一区二区三区蜜桃视频| 欧美成人激情免费网| 精品久久国产老人久久综合| 欧美videofree性高清杂交| 精品久久国产老人久久综合| 久久只精品国产| 国产精品午夜久久| 中文字幕av不卡| 亚洲精品伦理在线| 日韩精品亚洲一区| 激情五月婷婷综合网| 不卡的av网站| 欧美午夜电影网| 日韩精品在线网站| 国产日产欧美一区二区视频| 亚洲乱码中文字幕| 日韩精品一二三四| 国产jizzjizz一区二区| 日本韩国精品一区二区在线观看| 欧美午夜精品一区二区蜜桃| 日韩欧美高清在线| 综合色中文字幕| 视频一区视频二区在线观看| 国产乱人伦偷精品视频免下载| 懂色av一区二区三区蜜臀| 在线看日本不卡| 精品国产一区二区三区久久影院 | 久久99精品国产| 不卡的av网站| 日韩精品一区二区在线| 亚洲色图在线播放| 麻豆成人91精品二区三区| 99国产精品99久久久久久| 欧美精品第1页| 日本一区二区视频在线| 性久久久久久久久| 国产成人av网站| 欧美欧美欧美欧美首页| 久久久久久亚洲综合影院红桃| 亚洲乱码一区二区三区在线观看| 激情文学综合插| 欧美影视一区在线| 亚洲国产精品av| 免费精品99久久国产综合精品| www.欧美.com| 国产亚洲欧美日韩在线一区| 亚洲成av人片在线观看无码| 成人综合婷婷国产精品久久蜜臀 | 国产一区二区三区免费播放| 欧美性猛交一区二区三区精品| 久久免费视频一区| 日日夜夜免费精品视频| 91麻豆文化传媒在线观看| 久久嫩草精品久久久精品| 青青青伊人色综合久久| 欧美色综合网站| 亚洲三级在线看| 成人深夜视频在线观看| 久久先锋影音av| 久久精品国产秦先生| 欧美精品欧美精品系列| 亚洲尤物在线视频观看| 99久久精品免费看国产免费软件| www久久久久| 国产一区二区影院| 精品对白一区国产伦| 青青草一区二区三区| 欧美日韩一级二级| 亚洲影院理伦片| 欧美中文字幕久久| 一区二区三区美女视频| 一本大道久久a久久精品综合| 中文字幕视频一区| 福利一区在线观看| 中文乱码免费一区二区 | 久久精品国产精品亚洲综合| 精品污污网站免费看| 一区二区三区欧美久久| 色屁屁一区二区| 亚洲国产精品久久一线不卡| 欧美日韩国产片|