Function report |
Source Code:lib\lz4\lz4hc_compress.c |
Create Date:2022-07-28 07:00:53 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:LZ4HC_InsertAndGetWiderMatch
Proto:static inline __attribute__((__always_inline__)) int LZ4HC_InsertAndGetWiderMatch(LZ4HC_CCtx_internal *hc4, const BYTE *const ip, const BYTE *const iLowLimit, const BYTE *const iHighLimit, int longest, const BYTE **matchpos, const BYTE **startpos, const int maxNbAttempts)
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| LZ4HC_CCtx_internal * | hc4 | |
| const BYTE *const | ip | |
| const BYTE *const | iLowLimit | |
| const BYTE *const | iHighLimit | |
| int | longest | |
| const BYTE ** | matchpos | |
| const BYTE ** | startpos | |
| const int | maxNbAttempts |
| 178 | chainTable = chainTable |
| 182 | lowPrefixPtr = base + dictLimit |
| 183 | lowLimit = If low that point, no more dict + 64 * KB > ip - base Then low that point, no more dict Else ip - base - 64 * KB - 1 |
| 188 | nbAttempts = maxNbAttempts |
| 193 | matchIndex = HashTable[LZ4HC_hashPtr(ip)] |
| 195 | When matchIndex >= lowLimit && nbAttempts cycle |
| 197 | nbAttempts-- |
| 198 | If matchIndex >= dictLimit Then |
| 199 | matchPtr = base + matchIndex |
| 203 | If LZ4_read32(matchPtr) == LZ4_read32(ip) Then |
| 204 | mlt = -************************************* Constants + LZ4_count(ip + -************************************* Constants, matchPtr + -************************************* Constants, iHighLimit) |
| 208 | back = 0 |
| 210 | When ip + back > iLowLimit && matchPtr + back > lowPrefixPtr && ip[back - 1] == matchPtr[back - 1] cycle |
| 213 | back-- |
| 224 | Else |
| 225 | matchPtr = dictBase + matchIndex |
| 227 | If LZ4_read32(matchPtr) == LZ4_read32(ip) Then |
| 229 | back = 0 |
| 230 | vLimit = ip + dictLimit - matchIndex |
| 232 | If vLimit > iHighLimit Then vLimit = iHighLimit |
| 235 | mlt = LZ4_count(ip + -************************************* Constants, matchPtr + -************************************* Constants, vLimit) + -************************************* Constants |
| 238 | If ip + mlt == vLimit && vLimit < iHighLimit Then mlt += LZ4_count(ip + mlt, base + dictLimit, iHighLimit) |
| 241 | When ip + back > iLowLimit && matchIndex + back > lowLimit && ip[back - 1] == matchPtr[back - 1] cycle |
| 244 | back-- |
| 256 | matchIndex -= aster (matchIndex) |
| 259 | Return longest |
| Name | Describe |
|---|---|
| LZ4HC_compress_generic |
| 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 |