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 |