aboutsummaryrefslogtreecommitdiff
path: root/CPP/7zip/Archive/ZHandler.cpp
diff options
context:
space:
mode:
authorSadaf Ebrahimi <sadafebrahimi@google.com>2024-05-23 16:51:51 +0000
committerSadaf Ebrahimi <sadafebrahimi@google.com>2024-05-23 16:51:51 +0000
commit74889e9e6dab98eaecc6de47240997a02b97f65e (patch)
tree5f77f5c74697ca629dcafe3cd877c1f8800ed0b0 /CPP/7zip/Archive/ZHandler.cpp
parent161965423588d0d35108fde806bfb6c0b191035e (diff)
downloadlzma-74889e9e6dab98eaecc6de47240997a02b97f65e.tar.gz
Upgrade lzma to 24.05
This project was upgraded with external_updater. Usage: tools/external_updater/updater.sh update external/lzma For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md Test: TreeHugger Change-Id: I2acd5f13fec909dfb40cc5c95a9606c4376672ec
Diffstat (limited to 'CPP/7zip/Archive/ZHandler.cpp')
-rw-r--r--CPP/7zip/Archive/ZHandler.cpp37
1 files changed, 16 insertions, 21 deletions
diff --git a/CPP/7zip/Archive/ZHandler.cpp b/CPP/7zip/Archive/ZHandler.cpp
index 18e712a..1caef34 100644
--- a/CPP/7zip/Archive/ZHandler.cpp
+++ b/CPP/7zip/Archive/ZHandler.cpp
@@ -89,7 +89,7 @@ API_FUNC_static_IsArc IsArc_Z(const Byte *p, size_t size)
if (size < 3)
return k_IsArc_Res_NEED_MORE;
if (size > NCompress::NZ::kRecommendedCheckSize)
- size = NCompress::NZ::kRecommendedCheckSize;
+ size = NCompress::NZ::kRecommendedCheckSize;
if (!NCompress::NZ::CheckStream(p, size))
return k_IsArc_Res_NO;
return k_IsArc_Res_YES;
@@ -166,13 +166,12 @@ Z7_COM7F_IMF(CHandler::Extract(const UInt32 *indices, UInt32 numItems,
return S_OK;
if (numItems != (UInt32)(Int32)-1 && (numItems != 1 || indices[0] != 0))
return E_INVALIDARG;
-
- extractCallback->SetTotal(_packSize);
-
+ RINOK(extractCallback->SetTotal(_packSize))
UInt64 currentTotalPacked = 0;
-
RINOK(extractCallback->SetCompleted(&currentTotalPacked))
+ int opRes;
+ {
CMyComPtr<ISequentialOutStream> realOutStream;
const Int32 askMode = testMode ?
NExtract::NAskMode::kTest :
@@ -183,37 +182,33 @@ Z7_COM7F_IMF(CHandler::Extract(const UInt32 *indices, UInt32 numItems,
if (!testMode && !realOutStream)
return S_OK;
- extractCallback->PrepareOperation(askMode);
+ RINOK(extractCallback->PrepareOperation(askMode))
- CDummyOutStream *outStreamSpec = new CDummyOutStream;
- CMyComPtr<ISequentialOutStream> outStream(outStreamSpec);
- outStreamSpec->SetStream(realOutStream);
- outStreamSpec->Init();
- realOutStream.Release();
+ CMyComPtr2_Create<ISequentialOutStream, CDummyOutStream> outStream;
+ outStream->SetStream(realOutStream);
+ outStream->Init();
+ // realOutStream.Release();
- CLocalProgress *lps = new CLocalProgress;
- CMyComPtr<ICompressProgressInfo> progress = lps;
+ CMyComPtr2_Create<ICompressProgressInfo, CLocalProgress> lps;
lps->Init(extractCallback, true);
RINOK(InStream_SeekToBegin(_stream))
- NCompress::NZ::CDecoder *decoderSpec = new NCompress::NZ::CDecoder;
- CMyComPtr<ICompressCoder> decoder = decoderSpec;
-
- int opRes;
+ NCompress::NZ::CDecoder decoder;
{
- HRESULT result = decoder->Code(_stream, outStream, NULL, NULL, progress);
- if (result == S_FALSE)
+ const HRESULT hres = decoder.Code(_stream, outStream, lps);
+ if (hres == S_FALSE)
opRes = NExtract::NOperationResult::kDataError;
else
{
- RINOK(result)
+ RINOK(hres)
opRes = NExtract::NOperationResult::kOK;
}
}
// _unpackSize = outStreamSpec->GetSize();
// _unpackSize_Defined = true;
- outStream.Release();
+ // outStream.Release();
+ }
return extractCallback->SetOperationResult(opRes);
COM_TRY_END
}