函数逻辑报告 |
Source Code:lib\zstd\compress.c |
Create Date:2022-07-27 08:01:19 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:ZSTD_compressBlock_doubleFast_generic
函数原型:void ZSTD_compressBlock_doubleFast_generic(ZSTD_CCtx *cctx, const void *src, size_t srcSize, const U32 mls)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
ZSTD_CCtx * | cctx | |
const void * | src | |
size_t | srcSize | |
const U32 | mls |
1258 | hashSmall等于chainTable |
1260 | seqStorePtr等于seqStore的地址 |
1265 | lowestIndex等于dictLimit |
1266 | lowest等于base加lowestIndex |
1268 | ilimit等于iend减HASH_READ_SIZE |
1270 | offsetSaved等于0 |
1276 | 如果offset_2大于maxRep则offsetSaved等于offset_2, offset_2等于0 |
1278 | 如果offset_1大于maxRep则offsetSaved等于offset_1, offset_1等于0 |
1285 | h2等于ZSTD_hashPtr(ip, hBitsL, 8) |
1286 | h等于ZSTD_hashPtr(ip, hBitsS, mls) |
1288 | matchIndexL等于hashLong[h2] |
1289 | matchIndexS等于hashSmall[h] |
1290 | matchLong等于base加matchIndexL |
1291 | match等于base加matchIndexS |
1294 | 如果offset_1大于0按位与ZSTD_read32(ip + 1 - offset_1)恒等于ZSTD_read32(ip + 1)则 |
1296 | ip自加 |
1298 | 否则 |
1300 | 如果matchIndexL大于lowestIndex且ZSTD_read64(matchLong)恒等于ZSTD_read64(ip)则 |
1301 | mLength等于ZSTD_count(ip + 8, matchLong + 8, iend)加8 |
1308 | 否则如果matchIndexS大于lowestIndex且ZSTD_read32(match)恒等于ZSTD_read32(ip)则 |
1309 | h3等于ZSTD_hashPtr(ip + 1, hBitsL, 8) |
1310 | matchIndex3等于hashLong[h3] |
1311 | match3等于base加matchIndex3 |
1313 | 如果matchIndex3大于lowestIndex且ZSTD_read64(match3)恒等于ZSTD_read64(ip + 1)则 |
1322 | 否则 |
1331 | 否则 |
1332 | ip加等于ip减anchor右移control skip over incompressible data 位的值加1 |
1333 | 继续下一循环 |
1348 | hashLong[ZSTD_hashPtr(base + curr + 2, hBitsL, 8)]等于hashSmall[ZSTD_hashPtr(base + curr + 2, hBitsS, mls)]等于curr加2 |
1350 | hashLong[ZSTD_hashPtr(ip - 2, hBitsL, 8)]等于hashSmall[ZSTD_hashPtr(ip - 2, hBitsS, mls)]等于ip减2减base |
1353 | 当ip小于等于ilimit且offset_2大于0按位与ZSTD_read32(ip)恒等于ZSTD_read32(ip - offset_2)循环 |
1366 | 继续下一循环 |
1372 | repToConfirm[0]等于如果offset_1则offset_1否则offsetSaved |
1373 | repToConfirm[1]等于如果offset_2则offset_2否则offsetSaved |
名称 | 描述 |
---|---|
ZSTD_compressBlock_doubleFast |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |