MCPcopy Create free account
hub / github.com/F-Stack/f-stack / HUF_decodeStreamX2

Function HUF_decodeStreamX2

freebsd/contrib/openzfs/module/zstd/lib/zstd.c:22044–22069  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

22042 ptr += HUF_decodeSymbolX2(ptr, DStreamPtr, dt, dtLog)
22043
22044HINT_INLINE size_t
22045HUF_decodeStreamX2(BYTE* p, BIT_DStream_t* bitDPtr, BYTE* const pEnd,
22046 const HUF_DEltX2* const dt, const U32 dtLog)
22047{
22048 BYTE* const pStart = p;
22049
22050 /* up to 8 symbols at a time */
22051 while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) & (p < pEnd-(sizeof(bitDPtr->bitContainer)-1))) {
22052 HUF_DECODE_SYMBOLX2_2(p, bitDPtr);
22053 HUF_DECODE_SYMBOLX2_1(p, bitDPtr);
22054 HUF_DECODE_SYMBOLX2_2(p, bitDPtr);
22055 HUF_DECODE_SYMBOLX2_0(p, bitDPtr);
22056 }
22057
22058 /* closer to end : up to 2 symbols at a time */
22059 while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) & (p <= pEnd-2))
22060 HUF_DECODE_SYMBOLX2_0(p, bitDPtr);
22061
22062 while (p <= pEnd-2)
22063 HUF_DECODE_SYMBOLX2_0(p, bitDPtr); /* no need to reload : reached the end of DStream */
22064
22065 if (p < pEnd)
22066 p += HUF_decodeLastSymbolX2(p, bitDPtr, dt, dtLog);
22067
22068 return p-pStart;
22069}
22070
22071FORCE_INLINE_TEMPLATE size_t
22072HUF_decompress1X2_usingDTable_internal_body(

Calls 2

BIT_reloadDStreamFunction · 0.70
HUF_decodeLastSymbolX2Function · 0.70

Tested by

no test coverage detected