| Index: third_party/lzma/v4_65/files/CPP/7zip/Common/FilterCoder.cpp
|
| diff --git a/third_party/lzma/v4_65/files/CPP/7zip/Common/FilterCoder.cpp b/third_party/lzma/v4_65/files/CPP/7zip/Common/FilterCoder.cpp
|
| deleted file mode 100644
|
| index 6b34260cda6b257045d4b1dce3e233fab94ee0c4..0000000000000000000000000000000000000000
|
| --- a/third_party/lzma/v4_65/files/CPP/7zip/Common/FilterCoder.cpp
|
| +++ /dev/null
|
| @@ -1,256 +0,0 @@
|
| -// FilterCoder.cpp
|
| -
|
| -#include "StdAfx.h"
|
| -
|
| -#include "FilterCoder.h"
|
| -extern "C"
|
| -{
|
| -#include "../../../C/Alloc.h"
|
| -}
|
| -#include "../../Common/Defs.h"
|
| -#include "StreamUtils.h"
|
| -
|
| -static const UInt32 kBufferSize = 1 << 17;
|
| -
|
| -CFilterCoder::CFilterCoder()
|
| -{
|
| - _buffer = (Byte *)::MidAlloc(kBufferSize);
|
| -}
|
| -
|
| -CFilterCoder::~CFilterCoder()
|
| -{
|
| - ::MidFree(_buffer);
|
| -}
|
| -
|
| -HRESULT CFilterCoder::WriteWithLimit(ISequentialOutStream *outStream, UInt32 size)
|
| -{
|
| - if (_outSizeIsDefined)
|
| - {
|
| - UInt64 remSize = _outSize - _nowPos64;
|
| - if (size > remSize)
|
| - size = (UInt32)remSize;
|
| - }
|
| - RINOK(WriteStream(outStream, _buffer, size));
|
| - _nowPos64 += size;
|
| - return S_OK;
|
| -}
|
| -
|
| -
|
| -STDMETHODIMP CFilterCoder::Code(ISequentialInStream *inStream,
|
| - ISequentialOutStream *outStream, const UInt64 * /* inSize */, const UInt64 *outSize,
|
| - ICompressProgressInfo *progress)
|
| -{
|
| - RINOK(Init());
|
| - UInt32 bufferPos = 0;
|
| - _outSizeIsDefined = (outSize != 0);
|
| - if (_outSizeIsDefined)
|
| - _outSize = *outSize;
|
| -
|
| - while(NeedMore())
|
| - {
|
| - size_t processedSize = kBufferSize - bufferPos;
|
| -
|
| - // Change it: It can be optimized using ReadPart
|
| - RINOK(ReadStream(inStream, _buffer + bufferPos, &processedSize));
|
| -
|
| - UInt32 endPos = bufferPos + (UInt32)processedSize;
|
| -
|
| - bufferPos = Filter->Filter(_buffer, endPos);
|
| - if (bufferPos > endPos)
|
| - {
|
| - for (; endPos< bufferPos; endPos++)
|
| - _buffer[endPos] = 0;
|
| - bufferPos = Filter->Filter(_buffer, endPos);
|
| - }
|
| -
|
| - if (bufferPos == 0)
|
| - {
|
| - if (endPos > 0)
|
| - return WriteWithLimit(outStream, endPos);
|
| - return S_OK;
|
| - }
|
| - RINOK(WriteWithLimit(outStream, bufferPos));
|
| - if (progress != NULL)
|
| - {
|
| - RINOK(progress->SetRatioInfo(&_nowPos64, &_nowPos64));
|
| - }
|
| - UInt32 i = 0;
|
| - while(bufferPos < endPos)
|
| - _buffer[i++] = _buffer[bufferPos++];
|
| - bufferPos = i;
|
| - }
|
| - return S_OK;
|
| -}
|
| -
|
| -// #ifdef _ST_MODE
|
| -STDMETHODIMP CFilterCoder::SetOutStream(ISequentialOutStream *outStream)
|
| -{
|
| - _bufferPos = 0;
|
| - _outStream = outStream;
|
| - return Init();
|
| -}
|
| -
|
| -STDMETHODIMP CFilterCoder::ReleaseOutStream()
|
| -{
|
| - _outStream.Release();
|
| - return S_OK;
|
| -};
|
| -
|
| -
|
| -STDMETHODIMP CFilterCoder::Write(const void *data, UInt32 size, UInt32 *processedSize)
|
| -{
|
| - UInt32 processedSizeTotal = 0;
|
| - while(size > 0)
|
| - {
|
| - UInt32 sizeMax = kBufferSize - _bufferPos;
|
| - UInt32 sizeTemp = size;
|
| - if (sizeTemp > sizeMax)
|
| - sizeTemp = sizeMax;
|
| - memmove(_buffer + _bufferPos, data, sizeTemp);
|
| - size -= sizeTemp;
|
| - processedSizeTotal += sizeTemp;
|
| - data = (const Byte *)data + sizeTemp;
|
| - UInt32 endPos = _bufferPos + sizeTemp;
|
| - _bufferPos = Filter->Filter(_buffer, endPos);
|
| - if (_bufferPos == 0)
|
| - {
|
| - _bufferPos = endPos;
|
| - break;
|
| - }
|
| - if (_bufferPos > endPos)
|
| - {
|
| - if (size != 0)
|
| - return E_FAIL;
|
| - break;
|
| - }
|
| - RINOK(WriteWithLimit(_outStream, _bufferPos));
|
| - UInt32 i = 0;
|
| - while(_bufferPos < endPos)
|
| - _buffer[i++] = _buffer[_bufferPos++];
|
| - _bufferPos = i;
|
| - }
|
| - if (processedSize != NULL)
|
| - *processedSize = processedSizeTotal;
|
| - return S_OK;
|
| -}
|
| -
|
| -STDMETHODIMP CFilterCoder::Flush()
|
| -{
|
| - if (_bufferPos != 0)
|
| - {
|
| - UInt32 endPos = Filter->Filter(_buffer, _bufferPos);
|
| - if (endPos > _bufferPos)
|
| - {
|
| - for (; _bufferPos < endPos; _bufferPos++)
|
| - _buffer[_bufferPos] = 0;
|
| - if (Filter->Filter(_buffer, endPos) != endPos)
|
| - return E_FAIL;
|
| - }
|
| - RINOK(WriteStream(_outStream, _buffer, _bufferPos));
|
| - _bufferPos = 0;
|
| - }
|
| - CMyComPtr<IOutStreamFlush> flush;
|
| - _outStream.QueryInterface(IID_IOutStreamFlush, &flush);
|
| - if (flush)
|
| - return flush->Flush();
|
| - return S_OK;
|
| -}
|
| -
|
| -
|
| -STDMETHODIMP CFilterCoder::SetInStream(ISequentialInStream *inStream)
|
| -{
|
| - _convertedPosBegin = _convertedPosEnd = _bufferPos = 0;
|
| - _inStream = inStream;
|
| - return Init();
|
| -}
|
| -
|
| -STDMETHODIMP CFilterCoder::ReleaseInStream()
|
| -{
|
| - _inStream.Release();
|
| - return S_OK;
|
| -};
|
| -
|
| -STDMETHODIMP CFilterCoder::Read(void *data, UInt32 size, UInt32 *processedSize)
|
| -{
|
| - UInt32 processedSizeTotal = 0;
|
| - while(size > 0)
|
| - {
|
| - if (_convertedPosBegin != _convertedPosEnd)
|
| - {
|
| - UInt32 sizeTemp = MyMin(size, _convertedPosEnd - _convertedPosBegin);
|
| - memmove(data, _buffer + _convertedPosBegin, sizeTemp);
|
| - _convertedPosBegin += sizeTemp;
|
| - data = (void *)((Byte *)data + sizeTemp);
|
| - size -= sizeTemp;
|
| - processedSizeTotal += sizeTemp;
|
| - break;
|
| - }
|
| - int i;
|
| - for (i = 0; _convertedPosEnd + i < _bufferPos; i++)
|
| - _buffer[i] = _buffer[i + _convertedPosEnd];
|
| - _bufferPos = i;
|
| - _convertedPosBegin = _convertedPosEnd = 0;
|
| - size_t processedSizeTemp = kBufferSize - _bufferPos;
|
| - RINOK(ReadStream(_inStream, _buffer + _bufferPos, &processedSizeTemp));
|
| - _bufferPos = _bufferPos + (UInt32)processedSizeTemp;
|
| - _convertedPosEnd = Filter->Filter(_buffer, _bufferPos);
|
| - if (_convertedPosEnd == 0)
|
| - {
|
| - if (_bufferPos == 0)
|
| - break;
|
| - else
|
| - {
|
| - _convertedPosEnd = _bufferPos; // check it
|
| - continue;
|
| - }
|
| - }
|
| - if (_convertedPosEnd > _bufferPos)
|
| - {
|
| - for (; _bufferPos < _convertedPosEnd; _bufferPos++)
|
| - _buffer[_bufferPos] = 0;
|
| - _convertedPosEnd = Filter->Filter(_buffer, _bufferPos);
|
| - }
|
| - }
|
| - if (processedSize != NULL)
|
| - *processedSize = processedSizeTotal;
|
| - return S_OK;
|
| -}
|
| -
|
| -// #endif // _ST_MODE
|
| -
|
| -#ifndef _NO_CRYPTO
|
| -STDMETHODIMP CFilterCoder::CryptoSetPassword(const Byte *data, UInt32 size)
|
| -{
|
| - return _setPassword->CryptoSetPassword(data, size);
|
| -}
|
| -#endif
|
| -
|
| -#ifndef EXTRACT_ONLY
|
| -STDMETHODIMP CFilterCoder::SetCoderProperties(const PROPID *propIDs,
|
| - const PROPVARIANT *properties, UInt32 numProperties)
|
| -{
|
| - return _SetCoderProperties->SetCoderProperties(propIDs, properties, numProperties);
|
| -}
|
| -
|
| -STDMETHODIMP CFilterCoder::WriteCoderProperties(ISequentialOutStream *outStream)
|
| -{
|
| - return _writeCoderProperties->WriteCoderProperties(outStream);
|
| -}
|
| -
|
| -/*
|
| -STDMETHODIMP CFilterCoder::ResetSalt()
|
| -{
|
| - return _CryptoResetSalt->ResetSalt();
|
| -}
|
| -*/
|
| -
|
| -STDMETHODIMP CFilterCoder::ResetInitVector()
|
| -{
|
| - return _CryptoResetInitVector->ResetInitVector();
|
| -}
|
| -#endif
|
| -
|
| -STDMETHODIMP CFilterCoder::SetDecoderProperties2(const Byte *data, UInt32 size)
|
| -{
|
| - return _setDecoderProperties->SetDecoderProperties2(data, size);
|
| -}
|
|
|