BZip2Decoder.cpp (p7zip_15.14.1_src_all) | : | BZip2Decoder.cpp (p7zip_16.02_src_all) | ||
---|---|---|---|---|
skipping to change at line 786 | skipping to change at line 786 | |||
props.randMode = true; | props.randMode = true; | |||
res = Decoder->Base.ReadBlock(Counters, Decoder->BlockSizeMax, &props); | res = Decoder->Base.ReadBlock(Counters, Decoder->BlockSizeMax, &props); | |||
if (res != S_OK) | if (res != S_OK) | |||
{ | { | |||
Decoder->Result1 = res; | Decoder->Result1 = res; | |||
FinishStream(); | FinishStream(); | |||
continue; | continue; | |||
} | } | |||
packSize = Decoder->Base.BitDecoder.GetProcessedSize(); | packSize = Decoder->Base.BitDecoder.GetProcessedSize(); | |||
} | } | |||
catch(const CInBufferException &e) { res = e.ErrorCode; if (res != S_OK) re s = E_FAIL; } | catch(const CInBufferException &e) { res = e.ErrorCode; if (res == S_OK) res = E_FAIL; } | |||
catch(...) { res = E_FAIL; } | catch(...) { res = E_FAIL; } | |||
if (res != S_OK) | if (res != S_OK) | |||
{ | { | |||
Decoder->Result1 = res; | Decoder->Result1 = res; | |||
FinishStream(); | FinishStream(); | |||
continue; | continue; | |||
} | } | |||
Decoder->CS.Leave(); | Decoder->CS.Leave(); | |||
skipping to change at line 812 | skipping to change at line 812 | |||
Decoder->m_States[blockIndex].CanWriteEvent.Lock(); | Decoder->m_States[blockIndex].CanWriteEvent.Lock(); | |||
needFinish = Decoder->StreamWasFinished2; | needFinish = Decoder->StreamWasFinished2; | |||
if (!needFinish) | if (!needFinish) | |||
{ | { | |||
if (DecodeBlock(props, Counters + 256, Decoder->m_OutStream) == crc) | if (DecodeBlock(props, Counters + 256, Decoder->m_OutStream) == crc) | |||
res = Decoder->SetRatioProgress(packSize); | res = Decoder->SetRatioProgress(packSize); | |||
else | else | |||
res = S_FALSE; | res = S_FALSE; | |||
} | } | |||
} | } | |||
catch(const COutBufferException &e) { res = e.ErrorCode; if (res != S_OK) re s = E_FAIL; } | catch(const COutBufferException &e) { res = e.ErrorCode; if (res == S_OK) re s = E_FAIL; } | |||
catch(...) { res = E_FAIL; } | catch(...) { res = E_FAIL; } | |||
if (res != S_OK) | if (res != S_OK) | |||
{ | { | |||
Decoder->Result2 = res; | Decoder->Result2 = res; | |||
Decoder->StreamWasFinished2 = true; | Decoder->StreamWasFinished2 = true; | |||
} | } | |||
Decoder->m_States[nextBlockIndex].CanWriteEvent.Set(); | Decoder->m_States[nextBlockIndex].CanWriteEvent.Set(); | |||
if (res != S_OK || needFinish) | if (res != S_OK || needFinish) | |||
{ | { | |||
StreamWasFinishedEvent.Set(); | StreamWasFinishedEvent.Set(); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added |