#include "zutil.h"
#include "inftrees.h"
#include "inflate.h"
#include "inffast.h"
Go to the source code of this file.
◆ inflate_fast()
Definition at line 50 of file inffast.c.
53{
58 unsigned char FAR *beg;
60#ifdef INFLATE_STRICT
62#endif
71 unsigned lmask;
72 unsigned dmask;
75
77 unsigned dist;
79
80
87#ifdef INFLATE_STRICT
89#endif
96 lcode =
state->lencode;
97 dcode =
state->distcode;
98 lmask = (1U <<
state->lenbits) - 1;
99 dmask = (1U <<
state->distbits) - 1;
100
101
102
103 do {
109 }
110 here = lcode + (
hold & lmask);
111 dolen:
118 "inflate: literal '%c'\n" :
119 "inflate: literal 0x%02x\n", here->
val));
121 }
129 }
133 }
140 }
141 here = dcode + (
hold & dmask);
142 dodist:
156 }
157 }
159#ifdef INFLATE_STRICT
161 strm->msg = (
char *)
"invalid distance too far back";
163 break;
164 }
165#endif
175 (char *)"invalid distance too far back";
177 break;
178 }
179#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
181 do {
184 continue;
185 }
187 do {
192 do {
195 continue;
196 }
197#endif
198 }
204 do {
208 }
209 }
215 do {
222 do {
226 }
227 }
228 }
229 else {
233 do {
237 }
238 }
244 }
249 }
250 }
251 else {
253 do {
263 }
264 }
265 }
266 else if ((
op & 64) == 0) {
267 here = dcode + here->
val + (
hold & ((1U <<
op) - 1));
268 goto dodist;
269 }
270 else {
271 strm->msg = (
char *)
"invalid distance code";
273 break;
274 }
275 }
276 else if ((
op & 64) == 0) {
277 here = lcode + here->
val + (
hold & ((1U <<
op) - 1));
278 goto dolen;
279 }
283 break;
284 }
285 else {
286 strm->msg = (
char *)
"invalid literal/length code";
288 break;
289 }
291
292
297
298
306 return;
307}
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
static IHTMLWindow2 * window
static unsigned(__cdecl *hash_bstr)(bstr_t s)