Function report |
Source Code:lib\zlib_inflate\inffast.c |
Create Date:2022-07-28 06:57:44 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Decode literal, length, and distance codes and write out the resultingliteral and match bytes until either not enough input or output isavailable, an end-of-block is encountered, or a data error is encountered
Proto:void inflate_fast(z_streamp strm, unsigned start)
Type:void
Parameter:
Type | Parameter | Name |
---|---|---|
z_streamp | strm | >avail_in >= 6 |
unsigned | start |
118 | in = next input byte - OFF |
119 | last = in + number of bytes available at next_in - 5 |
121 | beg = out - start - remaining free space at next_out |
122 | end = out + remaining free space at next_out - 257 |
128 | write = window write index |
130 | hold = put bit accumulator |
131 | bits = umber of bits in "in" |
134 | lmask = (1U << dex bits for lencode ) - 1 |
135 | dmask = (1U << dex bits for distcode ) - 1 |
139 | Do |
140 | If bits < 15 Then |
147 | dolen : |
148 | op = s in this part of the code |
152 | If op == 0 Then |
153 | PUP(out) = ffset in table or code value |
155 | Else if op & 16 Then |
157 | op &= 15 |
158 | If op Then |
167 | If bits < 15 Then |
174 | dodist : |
175 | op = s in this part of the code |
179 | If op & 16 Then |
181 | op &= 15 |
184 | bits += 8 |
204 | last error message, NULL if no error = "invalid distance too far back" |
206 | Break |
209 | If write == 0 Then |
238 | Else |
254 | If len Then |
260 | Else |
307 | Else if (op & 64) == 0 Then |
311 | Else |
312 | last error message, NULL if no error = "invalid distance code" |
314 | Break |
317 | Else if (op & 64) == 0 Then |
321 | Else if op & 32 Then |
323 | Break |
325 | Else |
326 | last error message, NULL if no error = "invalid literal/length code" |
328 | Break |
339 | next input byte = in + OFF |
344 | put bit accumulator = hold |
345 | umber of bits in "in" = bits |
346 | Return |
Name | Describe |
---|---|
zlib_inflate | late() uses a state machine to process as much input data and generate asmuch output data as possible before returning |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |