函数逻辑报告 |
Source Code:lib\lzo\lzo1x_compress.c |
Create Date:2022-07-27 07:57:40 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:lzo1x_1_do_compress
函数原型:static noinline size_t lzo1x_1_do_compress(const unsigned char *in, size_t in_len, unsigned char *out, size_t *out_len, size_t ti, void *wrkmem, signed char *state_offset, const unsigned char bitstream_version)
返回类型:size_t
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| const unsigned char * | in | |
| size_t | in_len | |
| unsigned char * | out | |
| size_t * | out_len | |
| size_t | ti | |
| void * | wrkmem | |
| signed char * | state_offset | |
| const unsigned char | bitstream_version |
| 39 | 循环 |
| 40 | const unsigned char * m_pos = NULL |
| 43 | run_length等于0 |
| 44 | literal : |
| 46 | next : |
| 47 | 如果此条件成立可能性小(为编译器优化)(ip >= ip_end)则退出 |
| 49 | dv等于get_unaligned_le32(ip) |
| 51 | 如果dv恒等于0且bitstream_version则 |
| 53 | limit等于如果ip_end小于ip加MAX_ZERO_RUN_LENGTH加1则ip_end否则ip加MAX_ZERO_RUN_LENGTH加1 |
| 85 | ir自加 |
| 86 | 如果IS_ALIGNED((uintptr_t)ir, 4)则 |
| 102 | 当此条件成立可能性大(为编译器优化)(ir < limit)且此条件成立可能性小(为编译器优化)( * ir == 0)循环 |
| 103 | ir自加 |
| 104 | run_length等于ir减ip |
| 107 | 否则 |
| 110 | dict[t] = (lzo_dict_t)(ip - in) |
| 111 | 如果此条件成立可能性小(为编译器优化)(dv != get_unaligned_le32(m_pos))则转到:literal |
| 116 | ti等于0 |
| 118 | 如果t不等于0则 |
| 153 | 如果此条件成立可能性小(为编译器优化)(run_length)则 |
| 154 | ip加等于run_length |
| 156 | put_unaligned_le32((run_length << 21) | 0xfffc18 | (run_length & 0x7), op) |
| 158 | op加等于4 |
| 159 | run_length等于0 |
| 160 | state_offset等于负3 |
| 161 | 转到:finished_writing_instruction |
| 164 | m_len等于4 |
| 212 | 如果此条件成立可能性小(为编译器优化)(ip[m_len] == m_pos[m_len])则 |
| 242 | m_len_done : |
| 246 | 如果m_len小于等于M2_MAX_LEN且m_off小于等于M2_MAX_OFFSET则 |
| 250 | 否则如果m_off小于等于M3_MAX_OFFSET则 |
| 251 | m_off减等于1 |
| 252 | 如果m_len小于等于M3_MAX_LEN则op自加等于M3_MARKER按位或m_len减2 |
| 254 | 否则 |
| 255 | m_len减等于M3_MAX_LEN |
| 257 | 当此条件成立可能性小(为编译器优化)(m_len > 255)循环 |
| 265 | 否则 |
| 282 | state_offset等于负2 |
| 285 | 转到:next |
| 名称 | 描述 |
|---|---|
| lzogeneric1x_1_compress |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |