Function report |
Source Code:lib\zstd\compress.c |
Create Date:2022-07-28 07:03:48 |
| 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_extDict_generic
Proto:static void ZSTD_compressBlock_doubleFast_extDict_generic(ZSTD_CCtx *ctx, const void *src, size_t srcSize, const U32 mls)
Type:void
Parameter:
| Type | Parameter | Name |
|---|---|---|
| ZSTD_CCtx * | ctx | |
| const void * | src | |
| size_t | srcSize | |
| const U32 | mls |
| 1399 | hashSmall = chainTable |
| 1401 | seqStorePtr = &seqStore |
| 1407 | lowestIndex = lowLimit |
| 1408 | dictStart = dictBase + lowestIndex |
| 1410 | lowPrefixPtr = base + dictLimit |
| 1418 | hSmall = ZSTD_hashPtr(ip, hBitsS, mls) |
| 1419 | matchIndex = hashSmall[hSmall] |
| 1420 | matchBase = If matchIndex < dictLimit Then dictBase Else base |
| 1421 | match = matchBase + matchIndex |
| 1423 | hLong = ZSTD_hashPtr(ip, hBitsL, 8) |
| 1424 | matchLongIndex = hashLong[hLong] |
| 1425 | matchLongBase = If matchLongIndex < dictLimit Then dictBase Else base |
| 1426 | matchLong = matchLongBase + matchLongIndex |
| 1435 | If dictLimit - 1 - repIndex >= 3 & repIndex > lowestIndex && ZSTD_read32(repMatch) == ZSTD_read32(ip + 1) Then |
| 1437 | repMatchEnd = If repIndex < dictLimit Then dictEnd Else iend |
| 1438 | mLength = ZSTD_count_2segments() :* can count match length with `ip` & `match` in 2 different segments.* convention : on reaching mEnd, match count continue starting from iStart + 4 |
| 1439 | ip++ |
| 1441 | Else |
| 1442 | If matchLongIndex > lowestIndex && ZSTD_read64(matchLong) == ZSTD_read64(ip) Then |
| 1443 | matchEnd = If matchLongIndex < dictLimit Then dictEnd Else iend |
| 1444 | lowMatchPtr = If matchLongIndex < dictLimit Then dictStart Else lowPrefixPtr |
| 1446 | mLength = ZSTD_count_2segments() :* can count match length with `ip` & `match` in 2 different segments.* convention : on reaching mEnd, match count continue starting from iStart + 8 |
| 1447 | offset = curr - matchLongIndex |
| 1457 | Else if matchIndex > lowestIndex && ZSTD_read32(match) == ZSTD_read32(ip) Then |
| 1458 | h3 = ZSTD_hashPtr(ip + 1, hBitsL, 8) |
| 1459 | matchIndex3 = hashLong[h3] |
| 1460 | match3Base = If matchIndex3 < dictLimit Then dictBase Else base |
| 1461 | match3 = match3Base + matchIndex3 |
| 1464 | If matchIndex3 > lowestIndex && ZSTD_read64(match3) == ZSTD_read64(ip + 1) Then |
| 1465 | matchEnd = If matchIndex3 < dictLimit Then dictEnd Else iend |
| 1466 | lowMatchPtr = If matchIndex3 < dictLimit Then dictStart Else lowPrefixPtr |
| 1467 | mLength = ZSTD_count_2segments() :* can count match length with `ip` & `match` in 2 different segments.* convention : on reaching mEnd, match count continue starting from iStart + 8 |
| 1468 | ip++ |
| 1469 | offset = curr + 1 - matchIndex3 |
| 1475 | Else |
| 1476 | matchEnd = If matchIndex < dictLimit Then dictEnd Else iend |
| 1477 | lowMatchPtr = If matchIndex < dictLimit Then dictStart Else lowPrefixPtr |
| 1478 | mLength = ZSTD_count_2segments() :* can count match length with `ip` & `match` in 2 different segments.* convention : on reaching mEnd, match count continue starting from iStart + 4 |
| 1479 | offset = curr - matchIndex |
| 1490 | Else |
| 1491 | ip += ( ip - anchor >> control skip over incompressible data ) + 1 |
| 1492 | Continue |
| 1511 | If dictLimit - 1 - repIndex2 >= 3 & repIndex2 > lowestIndex && ZSTD_read32(repMatch2) == ZSTD_read32(ip) Then |
| 1521 | hashLong[ZSTD_hashPtr(ip, hBitsL, 8)] = curr2 |
| 1522 | ip += repLength2 |
| 1524 | Continue |
| 1526 | Break |
| 1532 | repToConfirm[0] = offset_1 |
| 1533 | repToConfirm[1] = offset_2 |
| Name | Describe |
|---|---|
| ZSTD_compressBlock_doubleFast_extDict |
| 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 |