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

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

?? infback.c

?? 許多壓縮算法都用到了ZLIP算法
?? C
?? 第 1 頁 / 共 2 頁
字號:
                state->mode = BAD;            }            DROPBITS(2);            break;        case STORED:            /* get and verify stored block length */            BYTEBITS();                         /* go to byte boundary */            NEEDBITS(32);            if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) {                strm->msg = (char *)"invalid stored block lengths";                state->mode = BAD;                break;            }            state->length = (unsigned)hold & 0xffff;            Tracev((stderr, "inflate:       stored length %u\n",                    state->length));            INITBITS();            /* copy stored block from input to output */            while (state->length != 0) {                copy = state->length;                PULL();                ROOM();                if (copy > have) copy = have;                if (copy > left) copy = left;                zmemcpy(put, next, copy);                have -= copy;                next += copy;                left -= copy;                put += copy;                state->length -= copy;            }            Tracev((stderr, "inflate:       stored end\n"));            state->mode = TYPE;            break;        case TABLE:            /* get dynamic table entries descriptor */            NEEDBITS(14);            state->nlen = BITS(5) + 257;            DROPBITS(5);            state->ndist = BITS(5) + 1;            DROPBITS(5);            state->ncode = BITS(4) + 4;            DROPBITS(4);#ifndef PKZIP_BUG_WORKAROUND            if (state->nlen > 286 || state->ndist > 30) {                strm->msg = (char *)"too many length or distance symbols";                state->mode = BAD;                break;            }#endif            Tracev((stderr, "inflate:       table sizes ok\n"));            /* get code length code lengths (not a typo) */            state->have = 0;            while (state->have < state->ncode) {                NEEDBITS(3);                state->lens[order[state->have++]] = (unsigned short)BITS(3);                DROPBITS(3);            }            while (state->have < 19)                state->lens[order[state->have++]] = 0;            state->next = state->codes;            state->lencode = (code const FAR *)(state->next);            state->lenbits = 7;            ret = inflate_table(CODES, state->lens, 19, &(state->next),                                &(state->lenbits), state->work);            if (ret) {                strm->msg = (char *)"invalid code lengths set";                state->mode = BAD;                break;            }            Tracev((stderr, "inflate:       code lengths ok\n"));            /* get length and distance code code lengths */            state->have = 0;            while (state->have < state->nlen + state->ndist) {                for (;;) {                    this = state->lencode[BITS(state->lenbits)];                    if ((unsigned)(this.bits) <= bits) break;                    PULLBYTE();                }                if (this.val < 16) {                    NEEDBITS(this.bits);                    DROPBITS(this.bits);                    state->lens[state->have++] = this.val;                }                else {                    if (this.val == 16) {                        NEEDBITS(this.bits + 2);                        DROPBITS(this.bits);                        if (state->have == 0) {                            strm->msg = (char *)"invalid bit length repeat";                            state->mode = BAD;                            break;                        }                        len = (unsigned)(state->lens[state->have - 1]);                        copy = 3 + BITS(2);                        DROPBITS(2);                    }                    else if (this.val == 17) {                        NEEDBITS(this.bits + 3);                        DROPBITS(this.bits);                        len = 0;                        copy = 3 + BITS(3);                        DROPBITS(3);                    }                    else {                        NEEDBITS(this.bits + 7);                        DROPBITS(this.bits);                        len = 0;                        copy = 11 + BITS(7);                        DROPBITS(7);                    }                    if (state->have + copy > state->nlen + state->ndist) {                        strm->msg = (char *)"invalid bit length repeat";                        state->mode = BAD;                        break;                    }                    while (copy--)                        state->lens[state->have++] = (unsigned short)len;                }            }            /* build code tables */            state->next = state->codes;            state->lencode = (code const FAR *)(state->next);            state->lenbits = 9;            ret = inflate_table(LENS, state->lens, state->nlen, &(state->next),                                &(state->lenbits), state->work);            if (ret) {                strm->msg = (char *)"invalid literal/lengths set";                state->mode = BAD;                break;            }            state->distcode = (code const FAR *)(state->next);            state->distbits = 6;            ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist,                            &(state->next), &(state->distbits), state->work);            if (ret) {                strm->msg = (char *)"invalid distances set";                state->mode = BAD;                break;            }            Tracev((stderr, "inflate:       codes ok\n"));            state->mode = LEN;        case LEN:            /* use inflate_fast() if we have enough input and output */            if (have >= 6 && left >= 258) {                RESTORE();                if (state->whave < state->wsize)                    state->whave = state->wsize - left;                inflate_fast(strm, state->wsize);                LOAD();                break;            }            /* get a literal, length, or end-of-block code */            for (;;) {                this = state->lencode[BITS(state->lenbits)];                if ((unsigned)(this.bits) <= bits) break;                PULLBYTE();            }            if (this.op && (this.op & 0xf0) == 0) {                last = this;                for (;;) {                    this = state->lencode[last.val +                            (BITS(last.bits + last.op) >> last.bits)];                    if ((unsigned)(last.bits + this.bits) <= bits) break;                    PULLBYTE();                }                DROPBITS(last.bits);            }            DROPBITS(this.bits);            state->length = (unsigned)this.val;            /* process literal */            if (this.op == 0) {                Tracevv((stderr, this.val >= 0x20 && this.val < 0x7f ?                        "inflate:         literal '%c'\n" :                        "inflate:         literal 0x%02x\n", this.val));                ROOM();                *put++ = (unsigned char)(state->length);                left--;                state->mode = LEN;                break;            }            /* process end of block */            if (this.op & 32) {                Tracevv((stderr, "inflate:         end of block\n"));                state->mode = TYPE;                break;            }            /* invalid code */            if (this.op & 64) {                strm->msg = (char *)"invalid literal/length code";                state->mode = BAD;                break;            }            /* length code -- get extra bits, if any */            state->extra = (unsigned)(this.op) & 15;            if (state->extra != 0) {                NEEDBITS(state->extra);                state->length += BITS(state->extra);                DROPBITS(state->extra);            }            Tracevv((stderr, "inflate:         length %u\n", state->length));            /* get distance code */            for (;;) {                this = state->distcode[BITS(state->distbits)];                if ((unsigned)(this.bits) <= bits) break;                PULLBYTE();            }            if ((this.op & 0xf0) == 0) {                last = this;                for (;;) {                    this = state->distcode[last.val +                            (BITS(last.bits + last.op) >> last.bits)];                    if ((unsigned)(last.bits + this.bits) <= bits) break;                    PULLBYTE();                }                DROPBITS(last.bits);            }            DROPBITS(this.bits);            if (this.op & 64) {                strm->msg = (char *)"invalid distance code";                state->mode = BAD;                break;            }            state->offset = (unsigned)this.val;            /* get distance extra bits, if any */            state->extra = (unsigned)(this.op) & 15;            if (state->extra != 0) {                NEEDBITS(state->extra);                state->offset += BITS(state->extra);                DROPBITS(state->extra);            }            if (state->offset > state->wsize - (state->whave < state->wsize ?                                                left : 0)) {                strm->msg = (char *)"invalid distance too far back";                state->mode = BAD;                break;            }            Tracevv((stderr, "inflate:         distance %u\n", state->offset));            /* copy match from window to output */            do {                ROOM();                copy = state->wsize - state->offset;                if (copy < left) {                    from = put + copy;                    copy = left - copy;                }                else {                    from = put - state->offset;                    copy = left;                }                if (copy > state->length) copy = state->length;                state->length -= copy;                left -= copy;                do {                    *put++ = *from++;                } while (--copy);            } while (state->length != 0);            break;        case DONE:            /* inflate stream terminated properly -- write leftover output */            ret = Z_STREAM_END;            if (left < state->wsize) {                if (out(out_desc, state->window, state->wsize - left))                    ret = Z_BUF_ERROR;            }            goto inf_leave;        case BAD:            ret = Z_DATA_ERROR;            goto inf_leave;        default:                /* can't happen, but makes compilers happy */            ret = Z_STREAM_ERROR;            goto inf_leave;        }    /* Return unused input */  inf_leave:    strm->next_in = next;    strm->avail_in = have;    return ret;}int ZEXPORT inflateBackEnd(strm)z_stream FAR *strm;{    if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0)        return Z_STREAM_ERROR;    ZFREE(strm, strm->state);    strm->state = Z_NULL;    Tracev((stderr, "inflate: end\n"));    return Z_OK;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美在线一区二区三区| 懂色中文一区二区在线播放| 国产精品动漫网站| 久久久久久久久久久黄色| 欧美一区永久视频免费观看| 欧美午夜电影一区| 欧美色综合网站| 欧美三级在线视频| 欧美日韩美少妇| 3d动漫精品啪啪1区2区免费| 91麻豆精品久久久久蜜臀| 在线成人高清不卡| 欧美一区二区三区在线观看视频| 91精品国产色综合久久不卡蜜臀| 91精品国产综合久久久蜜臀粉嫩 | 国产亚洲欧洲997久久综合 | 一卡二卡三卡日韩欧美| 亚洲一区在线观看免费观看电影高清| 亚洲国产综合91精品麻豆| 丝袜美腿一区二区三区| 久久99国内精品| 粉嫩久久99精品久久久久久夜| 99久久国产综合色|国产精品| 91免费观看视频在线| 精品视频一区二区三区免费| 精品国产乱码久久| 亚洲欧洲成人自拍| 日日嗨av一区二区三区四区| 国产综合色视频| 一本大道久久a久久精品综合| 欧美一级爆毛片| 国产精品青草久久| 日韩精品电影在线观看| 成人免费高清在线观看| 在线播放一区二区三区| 国产欧美日韩视频在线观看| 亚洲精品久久久蜜桃| 麻豆一区二区三| 色88888久久久久久影院野外| 日韩欧美国产一区二区三区| 国产精品久久午夜夜伦鲁鲁| 日本午夜精品一区二区三区电影| 国产成人免费视| 555www色欧美视频| 亚洲图片激情小说| 久久国产综合精品| 在线中文字幕一区二区| 精品sm在线观看| 亚洲国产一区二区三区青草影视| 国产不卡在线一区| 欧美日本一区二区三区四区| 国产精品国产三级国产普通话三级| 性感美女极品91精品| 成人免费观看视频| 久久影音资源网| 日韩和欧美一区二区三区| 波多野结衣91| 国产色一区二区| 久久精品国产99国产精品| 欧美在线视频全部完| 国产精品你懂的在线欣赏| 久久aⅴ国产欧美74aaa| 欧美久久久久久久久中文字幕| 亚洲三级在线免费观看| 成人av在线影院| 久久精品亚洲精品国产欧美kt∨| 免费观看一级特黄欧美大片| 欧美人妇做爰xxxⅹ性高电影 | 欧美日韩在线一区二区| 亚洲日本丝袜连裤袜办公室| 成人性生交大片免费| 国产午夜亚洲精品不卡| 精一区二区三区| 日韩免费视频一区| 免费在线欧美视频| 欧美一区二区免费| 奇米四色…亚洲| 日韩视频在线观看一区二区| 毛片av一区二区| 精品欧美久久久| 久久91精品国产91久久小草| 日韩精品一区二区三区老鸭窝| 麻豆中文一区二区| 久久久精品国产99久久精品芒果 | 国产精品久久久久四虎| 成人国产电影网| 国产精品国产精品国产专区不片| 成人综合激情网| 国产精品国产自产拍在线| 91免费国产视频网站| 亚洲一区二区在线免费观看视频| 色中色一区二区| 亚洲第一主播视频| 91精品国产欧美日韩| 久久99蜜桃精品| 中文天堂在线一区| 在线视频欧美精品| 日产欧产美韩系列久久99| 日韩精品一区二| 成人免费视频一区| 亚洲综合一二三区| 精品久久久久香蕉网| 成人黄色a**站在线观看| 亚洲精品成人悠悠色影视| 欧美久久高跟鞋激| 懂色av一区二区三区蜜臀 | 欧美日本一道本| 国产麻豆91精品| 国产精品免费观看视频| 欧美人伦禁忌dvd放荡欲情| 精品无人码麻豆乱码1区2区 | 亚洲免费毛片网站| 欧美高清视频不卡网| 国产成人综合在线播放| 亚洲精品国久久99热| 日韩美女视频在线| 99视频在线观看一区三区| 天使萌一区二区三区免费观看| 精品欧美一区二区三区精品久久| 不卡的电影网站| 麻豆一区二区99久久久久| 亚洲毛片av在线| 久久久久久久久一| 欧美精品aⅴ在线视频| 99在线视频精品| 久久电影网电视剧免费观看| 亚洲女同女同女同女同女同69| 在线综合+亚洲+欧美中文字幕| 97国产一区二区| 韩国成人福利片在线播放| 五月天亚洲婷婷| 中文字幕一区二区5566日韩| 欧美精品一区二区三区久久久| 欧美色综合久久| 91视视频在线直接观看在线看网页在线看 | 久久久久久久国产精品影院| 欧美日韩一区中文字幕| 99久久夜色精品国产网站| 国产东北露脸精品视频| 久久超碰97人人做人人爱| 日韩极品在线观看| 午夜精品一区二区三区免费视频| 日韩一区在线播放| 成人欧美一区二区三区小说 | 亚洲一区二区三区自拍| 国产精品黄色在线观看| 日本一区二区三区四区| 久久青草欧美一区二区三区| 日韩欧美成人一区| 51精品国自产在线| 欧美一区在线视频| 日韩美女一区二区三区四区| 日韩一区二区免费高清| 这里是久久伊人| 欧美一级xxx| 日韩欧美国产一二三区| 精品88久久久久88久久久| 欧美不卡一区二区三区| 久久日韩粉嫩一区二区三区| 久久久久久一级片| 欧美激情一区三区| 国产精品国产成人国产三级| 亚洲欧美色图小说| 一区二区三区精品在线| 亚洲成人午夜影院| 免费人成网站在线观看欧美高清| 捆绑调教美女网站视频一区| 精品一区二区三区日韩| 国产精品69久久久久水密桃| 成人国产精品免费观看动漫| 99精品一区二区| 欧美日韩一本到| 日韩一区二区视频在线观看| 久久久久久久免费视频了| 中文字幕一区三区| 午夜日韩在线观看| 精品制服美女久久| 风间由美一区二区av101| 91片在线免费观看| 欧美日韩国产精品成人| 精品动漫一区二区三区在线观看| 国产日产亚洲精品系列| 亚洲一区二区三区在线| 激情综合色丁香一区二区| 成人国产免费视频| 欧美日韩视频专区在线播放| 日韩精品自拍偷拍| 最新国产成人在线观看| 蜜臀va亚洲va欧美va天堂 | 一区2区3区在线看| 精品系列免费在线观看| 日本高清不卡一区| 精品久久久久一区| 亚洲自拍欧美精品| 国产乱码一区二区三区| 欧美日韩在线三级| 亚洲国产精品精华液2区45| 天堂影院一区二区| 99久久er热在这里只有精品66| 6080国产精品一区二区|