20 UInt32 cyclicBufferPos;
21 UInt32 cyclicBufferSize;
23 Byte streamEndWasReached;
38 UInt32 keepSizeBefore;
42 size_t directInputRem;
50 UInt64 expectedDataSize;
53#define Inline_MatchFinder_GetPointerToCurrentPos(p) ((p)->buffer)
55#define Inline_MatchFinder_GetNumAvailableBytes(p) ((p)->streamPos - (p)->pos)
57#define Inline_MatchFinder_IsFinishedOK(p) \
58 ((p)->streamEndWasReached \
59 && (p)->streamPos == (p)->pos \
60 && (!(p)->directInput || (p)->directInputRem == 0))
68MatchFinder_GetPointerToCurrentPos (
73MatchFinder_MoveBlock (
78MatchFinder_ReadIfRequired (
83MatchFinder_Construct (
95 UInt32 keepAddBufferBefore,
97 UInt32 keepAddBufferAfter,
108MatchFinder_Normalize3 (
115MatchFinder_ReduceOffsets (
127 UInt32 _cyclicBufferPos,
128 UInt32 _cyclicBufferSize,
140typedef void (*Mf_Init_Func)(
143typedef UInt32 (*Mf_GetNumAvailableBytes_Func)(
146typedef const Byte * (*Mf_GetPointerToCurrentPos_Func)(
149typedef UInt32 (*Mf_GetMatches_Func)(
153typedef void (*Mf_Skip_Func)(
160 Mf_GetNumAvailableBytes_Func GetNumAvailableBytes;
161 Mf_GetPointerToCurrentPos_Func GetPointerToCurrentPos;
162 Mf_GetMatches_Func GetMatches;
167MatchFinder_CreateVTable (
173MatchFinder_Init_LowHash (
178MatchFinder_Init_HighHash (
194Bt3Zip_MatchFinder_GetMatches (
200Hc3Zip_MatchFinder_GetMatches (
206Bt3Zip_MatchFinder_Skip (
212Hc3Zip_MatchFinder_Skip (