函数逻辑报告 |
Source Code:lib\decompress_bunzip2.c |
Create Date:2022-07-27 07:14:06 |
| Last Modify:2020-03-15 22:49:38 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:Unpacks the next block and sets up for the inverse burrows-wheeler step.
函数原型:static int __attribute__((__section__(".init.text"))) __attribute__((__cold__))get_next_block(struct bunzip_data *bd)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct bunzip_data * | bd |
| 158 | struct group_data * hufGroup = NULL |
| 159 | int * base = NULL |
| 160 | int * limit = NULL |
| 175 | i等于Return the next nnn bits of input. All reads from the compressed inputare done through this function. All reads are big endian |
| 176 | j等于Return the next nnn bits of input. All reads from the compressed inputare done through this function. All reads are big endian |
| 178 | 如果i恒等于0x177245且j恒等于0x385090则返回:RETVAL_LAST_BLOCK |
| 180 | 如果i不等于0x314159或j不等于0x265359则返回:RETVAL_NOT_BZIP_DATA |
| 185 | 如果Return the next nnn bits of input. All reads from the compressed inputare done through this function. All reads are big endian 则返回:RETVAL_OBSOLETE_INPUT |
| 187 | origPtr等于Return the next nnn bits of input. All reads from the compressed inputare done through this function. All reads are big endian |
| 188 | 如果origPtr大于等于dbufSize则返回:RETVAL_DATA_ERROR |
| 195 | t等于Return the next nnn bits of input. All reads from the compressed inputare done through this function. All reads are big endian |
| 196 | symTotal等于0 |
| 206 | groupCount等于Return the next nnn bits of input. All reads from the compressed inputare done through this function. All reads are big endian |
| 207 | 如果groupCount小于2或groupCount大于Constants for Huffman coding 则返回:RETVAL_DATA_ERROR |
| 214 | nSelectors等于Return the next nnn bits of input. All reads from the compressed inputare done through this function. All reads are big endian |
| 215 | 如果非nSelectors则返回:RETVAL_DATA_ERROR |
| 219 | 以i小于nSelectors循环 |
| 221 | 以Return the next nnn bits of input. All reads from the compressed inputare done through this function. All reads are big endian 循环如果j大于等于groupCount则 |
| 223 | 返回:RETVAL_DATA_ERROR |
| 234 | 以j小于groupCount循环 |
| 246 | t等于Return the next nnn bits of input. All reads from the compressed inputare done through this function. All reads are big endian 减1 |
| 248 | 循环 |
| 296 | hufGroup等于Huffman coding tables 加j |
| 307 | pp等于0 |
| 358 | 循环 |
| 360 | 如果非symCount自减则 |
| 362 | 如果selector大于等于nSelectors则返回:RETVAL_DATA_ERROR |
| 364 | hufGroup等于Huffman coding tables 加selectors[selector++] |
| 380 | 当inbufBitCount小于maxLen循环 |
| 381 | 如果, outbufPos恒等于inbufCount则 |
| 382 | j等于Return the next nnn bits of input. All reads from the compressed inputare done through this function. All reads are big endian |
| 383 | 转到:got_huff_bits |
| 385 | inbufBits等于inbufBits左移8位按位或,*outbuf[, outbufPos++] |
| 387 | inbufBitCount加等于8 |
| 389 | inbufBitCount减等于maxLen |
| 390 | j等于inbufBits右移inbufBitCount位按位与1左移maxLen位的值减1 |
| 392 | got_huff_bits : |
| 397 | i先自加 |
| 398 | inbufBitCount加等于maxLen减i |
| 400 | 如果i大于maxLen或j等于j右移maxLen减i位的值减base[i]大于等于256 literals + RUNA + RUNB 则返回:RETVAL_DATA_ERROR |
| 410 | 如果nextSym小于等于SYMBOL_RUNB则 |
| 439 | 如果runPos则 |
| 440 | runPos等于0 |
| 441 | 如果dbufCount加t大于等于dbufSize则返回:RETVAL_DATA_ERROR |
| 461 | 如果dbufCount大于等于dbufSize则返回:RETVAL_DATA_ERROR |
| 470 | 循环 |
| 487 | j等于0 |
| 503 | 如果dbufCount则 |
| 504 | 如果origPtr大于等于dbufCount则返回:RETVAL_DATA_ERROR |
| 508 | State for interrupting output loop 右移等于8位 |
| 513 | 返回:Status return values |
| 名称 | 描述 |
|---|---|
| read_bunzip | Undo burrows-wheeler transform on intermediate buffer to produce output.If start_bunzip was initialized with out_fd =-1, then up to len bytes ofdata are written to outbuf. Return value is number of bytes written orerror (all errors are negative numbers) |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |