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