Function report |
Source Code:lib\zstd\compress.c |
Create Date:2022-07-28 07:03:40 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:ZSTD_compressBlock_doubleFast_generic
Proto:void ZSTD_compressBlock_doubleFast_generic(ZSTD_CCtx *cctx, const void *src, size_t srcSize, const U32 mls)
Type:void
Parameter:
| Type | Parameter | Name |
|---|---|---|
| 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 | If offset_2 > maxRep Then offsetSaved = offset_2 , offset_2 = 0 |
| 1278 | If offset_1 > maxRep Then 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 | If offset_1 > 0 & ZSTD_read32(ip + 1 - offset_1) == ZSTD_read32(ip + 1) Then |
| 1296 | ip++ |
| 1298 | Else |
| 1300 | If matchIndexL > lowestIndex && ZSTD_read64(matchLong) == ZSTD_read64(ip) Then |
| 1301 | mLength = ZSTD_count(ip + 8, matchLong + 8, iend) + 8 |
| 1308 | Else if matchIndexS > lowestIndex && ZSTD_read32(match) == ZSTD_read32(ip) Then |
| 1309 | h3 = ZSTD_hashPtr(ip + 1, hBitsL, 8) |
| 1310 | matchIndex3 = hashLong[h3] |
| 1311 | match3 = base + matchIndex3 |
| 1313 | If matchIndex3 > lowestIndex && ZSTD_read64(match3) == ZSTD_read64(ip + 1) Then |
| 1322 | Else |
| 1331 | Else |
| 1332 | ip += ( ip - anchor >> control skip over incompressible data ) + 1 |
| 1333 | Continue |
| 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 | When ip <= ilimit && offset_2 > 0 & ZSTD_read32(ip) == ZSTD_read32(ip - offset_2) cycle |
| 1366 | Continue |
| 1372 | repToConfirm[0] = If offset_1 Then offset_1 Else offsetSaved |
| 1373 | repToConfirm[1] = If offset_2 Then offset_2 Else offsetSaved |
| Name | Describe |
|---|---|
| ZSTD_compressBlock_doubleFast |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |