Function report |
Source Code:lib\zstd\decompress.c |
Create Date:2022-07-28 07:07:10 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:ZSTD_decodeSequenceLong_generic
Proto:FORCE_INLINE seq_t ZSTD_decodeSequenceLong_generic(seqState_t *seqState, int const longOffsets)
Type:seq_t
Parameter:
| Type | Parameter | Name |
|---|---|---|
| seqState_t * | seqState | |
| int const | longOffsets |
| 1167 | llCode = FSE_peekSymbol( & stateLL) |
| 1168 | mlCode = FSE_peekSymbol( & stateML) |
| 1169 | ofCode = FSE_peekSymbol( & stateOffb) |
| 1176 | static const U32 LL_base[36] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 22, 24, 28, 32, 40, 48, 64, 0x80, 0x100, 0x200, 0x400, 0x800, 0x1000, 0x2000, 0x4000, 0x8000, 0x10000} |
| 1179 | static const U32 ML_base[53] = {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 39, 41, 43, 47, 51, 59, 67, 83, 99, 0x83, 0x103, 0x203, 0x403, 0x803, 0x1003, 0x2003, 0x4003, 0x8003, 0x10003} |
| 1192 | Else |
| 1193 | If longOffsets Then |
| 1194 | extraBits = ofBits - -************************************** shared macros(ofBits, STREAM_ACCUMULATOR_MIN) |
| 1195 | offset = OF_base[ofCode] + (! BIT_readBitsFast() :* unsafe version; only works only if nbBits >= 1 << extraBits) |
| 1200 | Else |
| 1207 | If ofCode <= 1 Then |
| 1209 | If offset Then |
| 1210 | temp = If offset == 3 Then prevOffset[0] - 1 Else prevOffset[offset] |
| 1212 | If offset != 1 Then prevOffset[2] = prevOffset[1] |
| 1214 | prevOffset[1] = prevOffset[0] |
| 1215 | prevOffset[0] = offset = temp |
| 1216 | Else |
| 1217 | offset = prevOffset[0] |
| 1219 | Else |
| 1227 | matchLength = ML_base[mlCode] + If mlCode > 31 Then ! BIT_readBitsFast() :* unsafe version; only works only if nbBits >= 1 Else 0 |
| 1228 | If -*************************************************************** Memory I/O && mlBits + llBits > 24 Then BIT_reloadDStream( & DStream) |
| 1231 | litLength = LL_base[llCode] + If llCode > 15 Then ! BIT_readBitsFast() :* unsafe version; only works only if nbBits >= 1 Else 0 |
| 1232 | If -*************************************************************** Memory I/O || totalBits > 64 - 7 - LLFSELog + MLFSELog + OffFSELog Then BIT_reloadDStream( & DStream) |
| 1240 | pos = pos + matchLength |
| 1244 | FSE_updateState( & stateLL, & DStream) |
| 1245 | FSE_updateState( & stateML, & DStream) |
| 1246 | If -*************************************************************** Memory I/O Then BIT_reloadDStream( & DStream) |
| 1248 | FSE_updateState( & stateOffb, & DStream) |
| 1250 | Return seq |
| Name | Describe |
|---|---|
| ZSTD_decodeSequenceLong |
| 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 |