diff options
author | Igor Pavlov <ipavlov@users.sourceforge.net> | 2007-08-27 04:00:00 +0400 |
---|---|---|
committer | Kornel LesiĆski <kornel@geekhood.net> | 2016-05-28 02:15:54 +0300 |
commit | 051769bbc577aeede90558b6ab5c9be187940ca0 (patch) | |
tree | e6330cb80f2d4a526d8aa27812528e053b0cda90 /CPP/7zip/Compress/Rar/Rar3Decoder.cpp | |
parent | 33ccab7e728a996800e166d849fe1e92a17e1afe (diff) |
4.53 beta
Diffstat (limited to 'CPP/7zip/Compress/Rar/Rar3Decoder.cpp')
-rwxr-xr-x | CPP/7zip/Compress/Rar/Rar3Decoder.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/CPP/7zip/Compress/Rar/Rar3Decoder.cpp b/CPP/7zip/Compress/Rar/Rar3Decoder.cpp index 7f71d1d8..e629f4df 100755 --- a/CPP/7zip/Compress/Rar/Rar3Decoder.cpp +++ b/CPP/7zip/Compress/Rar/Rar3Decoder.cpp @@ -52,8 +52,8 @@ CDecoder::CDecoder(): CDecoder::~CDecoder() { InitFilters(); - if (_vmData) - ::MidFree(_vmData); + ::MidFree(_vmData); + ::MidFree(_window); } HRESULT CDecoder::WriteDataToStream(const Byte *data, UInt32 size) @@ -821,6 +821,7 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, _unpackSize = *outSize; return CodeReal(progress); } + catch(const CInBufferException &e) { return e.ErrorCode; } catch(...) { return S_FALSE; } // CNewException is possible here. But probably CNewException is caused // by error in data stream. |