ChmIn.h (p7zip_15.14.1_src_all) | : | ChmIn.h (p7zip_16.02_src_all) | ||
---|---|---|---|---|
skipping to change at line 184 | skipping to change at line 184 | |||
bool LowLevel; | bool LowLevel; | |||
CUIntVector Indices; | CUIntVector Indices; | |||
CObjectVector<CSectionInfo> Sections; | CObjectVector<CSectionInfo> Sections; | |||
UInt64 GetFileSize(unsigned fileIndex) const { return Items[Indices[fileIndex] ].Size; } | UInt64 GetFileSize(unsigned fileIndex) const { return Items[Indices[fileIndex] ].Size; } | |||
UInt64 GetFileOffset(unsigned fileIndex) const { return Items[Indices[fileInde x]].Offset; } | UInt64 GetFileOffset(unsigned fileIndex) const { return Items[Indices[fileInde x]].Offset; } | |||
UInt64 GetFolder(unsigned fileIndex) const | UInt64 GetFolder(unsigned fileIndex) const | |||
{ | { | |||
const CItem &item = Items[Indices[fileIndex]]; | const CItem &item = Items[Indices[fileIndex]]; | |||
const CSectionInfo §ion = Sections[(unsigned)item.Section]; | if (item.Section < Sections.Size()) | |||
if (section.IsLzx()) | { | |||
return section.Methods[0].LzxInfo.GetFolder(item.Offset); | const CSectionInfo §ion = Sections[(unsigned)item.Section]; | |||
if (section.IsLzx()) | ||||
return section.Methods[0].LzxInfo.GetFolder(item.Offset); | ||||
} | ||||
return 0; | return 0; | |||
} | } | |||
UInt64 GetLastFolder(unsigned fileIndex) const | UInt64 GetLastFolder(unsigned fileIndex) const | |||
{ | { | |||
const CItem &item = Items[Indices[fileIndex]]; | const CItem &item = Items[Indices[fileIndex]]; | |||
const CSectionInfo §ion = Sections[(unsigned)item.Section]; | if (item.Section < Sections.Size()) | |||
if (section.IsLzx()) | { | |||
return section.Methods[0].LzxInfo.GetFolder(item.Offset + item.Size - 1); | const CSectionInfo §ion = Sections[(unsigned)item.Section]; | |||
if (section.IsLzx()) | ||||
return section.Methods[0].LzxInfo.GetFolder(item.Offset + item.Size - 1) | ||||
; | ||||
} | ||||
return 0; | return 0; | |||
} | } | |||
void HighLevelClear() | void HighLevelClear() | |||
{ | { | |||
LowLevel = true; | LowLevel = true; | |||
Indices.Clear(); | Indices.Clear(); | |||
Sections.Clear(); | Sections.Clear(); | |||
} | } | |||
void Clear() | void Clear() | |||
{ | { | |||
CDatabase::Clear(); | CDatabase::Clear(); | |||
HighLevelClear(); | HighLevelClear(); | |||
} | } | |||
void SetIndices(); | void SetIndices(); | |||
void Sort(); | void Sort(); | |||
bool Check(); | bool Check(); | |||
bool CheckSectionRefs(); | ||||
}; | }; | |||
class CInArchive | class CInArchive | |||
{ | { | |||
CMyComPtr<ISequentialInStream> m_InStreamRef; | CMyComPtr<ISequentialInStream> m_InStreamRef; | |||
::CInBuffer _inBuffer; | ::CInBuffer _inBuffer; | |||
UInt64 _chunkSize; | UInt64 _chunkSize; | |||
bool _help2; | bool _help2; | |||
Byte ReadByte(); | Byte ReadByte(); | |||
End of changes. 3 change blocks. | ||||
6 lines changed or deleted | 14 lines changed or added |