diff options
Diffstat (limited to '3rdparty/lzma/CPP/7zip/Compress/BcjCoder.cpp')
-rw-r--r-- | 3rdparty/lzma/CPP/7zip/Compress/BcjCoder.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/3rdparty/lzma/CPP/7zip/Compress/BcjCoder.cpp b/3rdparty/lzma/CPP/7zip/Compress/BcjCoder.cpp index 0e34ef48880..37815dceb17 100644 --- a/3rdparty/lzma/CPP/7zip/Compress/BcjCoder.cpp +++ b/3rdparty/lzma/CPP/7zip/Compress/BcjCoder.cpp @@ -4,12 +4,16 @@ #include "BcjCoder.h" -UInt32 CBCJ_x86_Encoder::SubFilter(Byte *data, UInt32 size) +STDMETHODIMP CBcjCoder::Init() { - return (UInt32)::x86_Convert(data, size, _bufferPos, &_prevMask, 1); + _bufferPos = 0; + x86_Convert_Init(_prevMask); + return S_OK; } -UInt32 CBCJ_x86_Decoder::SubFilter(Byte *data, UInt32 size) +STDMETHODIMP_(UInt32) CBcjCoder::Filter(Byte *data, UInt32 size) { - return (UInt32)::x86_Convert(data, size, _bufferPos, &_prevMask, 0); + UInt32 processed = (UInt32)::x86_Convert(data, size, _bufferPos, &_prevMask, _encode); + _bufferPos += processed; + return processed; } |