函数逻辑报告 |
Source Code:lib\zstd\decompress.c |
Create Date:2022-07-27 08:04:56 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:ZSTD_execSequence
函数原型:size_t ZSTD_execSequence(BYTE *op, BYTE *const oend, seq_t sequence, const BYTE **litPtr, const BYTE *const litLimit, const BYTE *const base, const BYTE *const vBase, const BYTE *const dictEnd)
返回类型:size_t
参数:
类型 | 参数 | 名称 |
---|---|---|
BYTE * | op | |
BYTE *const | oend | |
seq_t | sequence | |
const BYTE ** | litPtr | |
const BYTE *const | litLimit | |
const BYTE *const | base | |
const BYTE *const | vBase | |
const BYTE *const | dictEnd |
1012 | oMatchEnd等于op加sequenceLength |
1013 | oend_w等于oend减! ZSTD_wildcopy() :* custom version of memcpy(), can copy up to 7 bytes too many (8 bytes if length==0) |
1018 | 如果oMatchEnd大于oend则返回:-***************************************** Error codes handling(dstSize_tooSmall) |
1020 | 如果iLitEnd大于litLimit则返回:-***************************************** Error codes handling(corruption_detected) |
1022 | 如果oLitEnd大于oend_w则返回:ZSTD_execSequenceLast7(op, oend, sequence, litPtr, litLimit, base, vBase, dictEnd) |
1027 | 如果litLength大于8则ZSTD_wildcopy(op + 8, ( * litPtr) + 8, litLength - 8) |
1036 | 如果offset大于oLitEnd减vBase则返回:-***************************************** Error codes handling(corruption_detected) |
1039 | 如果match加matchLength小于等于dictEnd则 |
1041 | 返回:sequenceLength |
1048 | matchLength减等于length1 |
1050 | 如果op大于oend_w或matchLength小于MINMATCH则 |
1054 | 返回:sequenceLength |
1061 | 如果offset小于8则 |
1063 | static const U32 dec32table[] = {0, 1, 2, 1, 4, 4, 4, 4} |
1064 | static const int dec64table[] = {8, 8, 8, 7, 8, 9, 10, 11} |
1065 | sub2等于dec64table[offset] |
1070 | match加等于dec32table[offset] |
1073 | 否则 |
1076 | op加等于8 |
1077 | match加等于8 |
1087 | 否则 |
1088 | ZSTD_wildcopy(op, match, (ptrdiff_t)matchLength - 8) |
1090 | 返回:sequenceLength |
名称 | 描述 |
---|---|
ZSTD_decompressSequences |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |