Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1258)

Unified Diff: third_party/lzma/v4_65/files/CPP/7zip/Archive/Lzma/LzmaHandler.cpp

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/lzma/v4_65/files/CPP/7zip/Archive/Lzma/LzmaHandler.cpp
diff --git a/third_party/lzma/v4_65/files/CPP/7zip/Archive/Lzma/LzmaHandler.cpp b/third_party/lzma/v4_65/files/CPP/7zip/Archive/Lzma/LzmaHandler.cpp
deleted file mode 100644
index c434595d8eb76bdaeb751dc6ecbcc659d3c0396e..0000000000000000000000000000000000000000
--- a/third_party/lzma/v4_65/files/CPP/7zip/Archive/Lzma/LzmaHandler.cpp
+++ /dev/null
@@ -1,243 +0,0 @@
-// LzmaHandler.cpp
-
-#include "StdAfx.h"
-
-#include "LzmaHandler.h"
-
-#include "Common/Defs.h"
-#include "Common/StringConvert.h"
-#include "Common/ComTry.h"
-#include "Common/IntToString.h"
-
-#include "Windows/PropVariant.h"
-
-#include "../../Common/ProgressUtils.h"
-#include "../../Common/StreamUtils.h"
-#include "../Common/DummyOutStream.h"
-
-#include "LzmaFiltersDecode.h"
-
-namespace NArchive {
-namespace NLzma {
-
-STATPROPSTG kProps[] =
-{
- { NULL, kpidSize, VT_UI8},
- { NULL, kpidPackSize, VT_UI8},
- { NULL, kpidMethod, VT_UI1}
-};
-
-IMP_IInArchive_Props
-IMP_IInArchive_ArcProps_NO
-
-STDMETHODIMP CHandler::GetNumberOfItems(UInt32 *numItems)
-{
- *numItems = 1;
- return S_OK;
-}
-
-static void ConvertUInt32ToString(UInt32 value, wchar_t *s)
-{
- ConvertUInt64ToString(value, s + MyStringLen(s));
-}
-
-static void DictSizeToString(UInt32 value, wchar_t *s)
-{
- for (int i = 0; i <= 31; i++)
- if ((UInt32(1) << i) == value)
- {
- ConvertUInt32ToString(i, s);
- return;
- }
- wchar_t c = L'b';
- if ((value & ((1 << 20) - 1)) == 0)
- {
- value >>= 20;
- c = L'm';
- }
- else if ((value & ((1 << 10) - 1)) == 0)
- {
- value >>= 10;
- c = L'k';
- }
- ConvertUInt32ToString(value, s);
- int p = MyStringLen(s);
- s[p++] = c;
- s[p++] = L'\0';
-}
-
-static void MyStrCat(wchar_t *d, const wchar_t *s)
-{
- MyStringCopy(d + MyStringLen(d), s);
-}
-
-STDMETHODIMP CHandler::GetProperty(UInt32 index, PROPID propID, PROPVARIANT *value)
-{
- if (index != 0)
- return E_INVALIDARG;
- NWindows::NCOM::CPropVariant propVariant;
- switch(propID)
- {
- case kpidSize:
- if (m_StreamInfo.HasUnpackSize())
- propVariant = (UInt64)m_StreamInfo.UnpackSize;
- break;
- case kpidPackSize:
- propVariant = (UInt64)m_PackSize;
- break;
- case kpidMethod:
- {
- wchar_t s[64];
- s[0] = '\0';
- if (m_StreamInfo.IsThereFilter)
- {
- const wchar_t *f;
- if (m_StreamInfo.FilterMethod == 0)
- f = L"Copy";
- else if (m_StreamInfo.FilterMethod == 1)
- f = L"BCJ";
- else
- f = L"Unknown";
- MyStrCat(s, f);
- MyStrCat(s, L" ");
- }
- MyStrCat(s, L"LZMA:");
- DictSizeToString(m_StreamInfo.GetDicSize(), s);
- propVariant = s;
- break;
- }
- }
- propVariant.Detach(value);
- return S_OK;
-}
-
-STDMETHODIMP CHandler::Open(IInStream *inStream,
- const UInt64 * /* maxCheckStartPosition */,
- IArchiveOpenCallback * /* openArchiveCallback */)
-{
- {
- RINOK(inStream->Seek(0, STREAM_SEEK_CUR, &m_StreamStartPosition));
-
- HRESULT res = ReadStreamHeader(inStream, m_StreamInfo);
- if (res != S_OK)
- return S_FALSE;
-
- Byte b;
- RINOK(ReadStream_FALSE(inStream, &b, 1));
- if (b != 0)
- return S_FALSE;
-
- UInt64 endPos;
- RINOK(inStream->Seek(0, STREAM_SEEK_END, &endPos));
- m_PackSize = endPos - m_StreamStartPosition - m_StreamInfo.GetHeaderSize();
-
- m_Stream = inStream;
- }
- return S_OK;
-}
-
-STDMETHODIMP CHandler::Close()
-{
- m_Stream.Release();
- return S_OK;
-}
-
-
-STDMETHODIMP CHandler::Extract(const UInt32* indices, UInt32 numItems,
- Int32 _aTestMode, IArchiveExtractCallback *extractCallback)
-{
- COM_TRY_BEGIN
- bool allFilesMode = (numItems == UInt32(-1));
- if (!allFilesMode)
- {
- if (numItems == 0)
- return S_OK;
- if (numItems != 1)
- return E_INVALIDARG;
- if (indices[0] != 0)
- return E_INVALIDARG;
- }
-
- bool testMode = (_aTestMode != 0);
-
- RINOK(extractCallback->SetTotal(m_PackSize));
-
- UInt64 currentTotalPacked = 0;
-
- CDummyOutStream *outStreamSpec = new CDummyOutStream;
- CMyComPtr<ISequentialOutStream> outStream(outStreamSpec);
-
- {
- CMyComPtr<ISequentialOutStream> realOutStream;
- Int32 askMode = testMode ?
- NArchive::NExtract::NAskMode::kTest :
- NArchive::NExtract::NAskMode::kExtract;
-
- RINOK(extractCallback->GetStream(0, &realOutStream, askMode));
-
- outStreamSpec->SetStream(realOutStream);
- outStreamSpec->Init();
- if(!testMode && !realOutStream)
- return S_OK;
- extractCallback->PrepareOperation(askMode);
- }
-
- CLocalProgress *lps = new CLocalProgress;
- CMyComPtr<ICompressProgressInfo> progress = lps;
- lps->Init(extractCallback, true);
-
- CDecoder decoder;
- RINOK(m_Stream->Seek(m_StreamStartPosition, STREAM_SEEK_SET, NULL));
- UInt64 streamPos = m_StreamStartPosition;
- Int32 opRes = NArchive::NExtract::NOperationResult::kOK;
- bool firstItem = true;
- for (;;)
- {
- CHeader st;
- HRESULT result = ReadStreamHeader(m_Stream, st);
- if (result != S_OK)
- {
- if (firstItem)
- return E_FAIL;
- break;
- }
- firstItem = false;
-
- lps->OutSize = outStreamSpec->GetSize();
- lps->InSize = currentTotalPacked;
- RINOK(lps->SetCur());
-
- streamPos += st.GetHeaderSize();
- UInt64 packProcessed;
-
- {
- result = decoder.Code(
- EXTERNAL_CODECS_VARS
- st, m_Stream, outStream, &packProcessed, progress);
- if (result == E_NOTIMPL)
- {
- opRes = NArchive::NExtract::NOperationResult::kUnSupportedMethod;
- break;
- }
- if (result == S_FALSE)
- {
- opRes = NArchive::NExtract::NOperationResult::kDataError;
- break;
- }
- RINOK(result);
- }
-
- if (packProcessed == (UInt64)(Int64)-1)
- break;
- RINOK(m_Stream->Seek(streamPos + packProcessed, STREAM_SEEK_SET, NULL));
- currentTotalPacked += packProcessed;
- streamPos += packProcessed;
- }
- outStream.Release();
- return extractCallback->SetOperationResult(opRes);
- COM_TRY_END
-}
-
-IMPL_ISetCompressCodecsInfo
-
-}}

Powered by Google App Engine
This is Rietveld 408576698