函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |