From 0d3c9641352f8b2603beeac80181d360aff831d0 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Tue, 14 Feb 2023 01:00:39 +0000 Subject: Update LZMA SDK to 19.00. Downloaded from https://www.7-zip.org/sdk.html. Test: builds Change-Id: Ic946b05f119a539c18bdfcff7b6112c03f4ec3e3 --- CPP/Common/ListFileUtils.cpp | 4 ++- CPP/Common/MyBuffer2.h | 63 +++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 62 insertions(+), 5 deletions(-) (limited to 'CPP/Common') diff --git a/CPP/Common/ListFileUtils.cpp b/CPP/Common/ListFileUtils.cpp index e40b2d0..2fdde6d 100644 --- a/CPP/Common/ListFileUtils.cpp +++ b/CPP/Common/ListFileUtils.cpp @@ -107,7 +107,7 @@ bool ReadNamesFromListFile2(CFSTR fileName, UStringVector &strings, UINT codePag } const wchar_t kGoodBOM = 0xFEFF; - const wchar_t kBadBOM = 0xFFFE; + // const wchar_t kBadBOM = 0xFFFE; UString s; unsigned i = 0; @@ -115,8 +115,10 @@ bool ReadNamesFromListFile2(CFSTR fileName, UStringVector &strings, UINT codePag for (; i < u.Len(); i++) { wchar_t c = u[i]; + /* if (c == kGoodBOM || c == kBadBOM) return false; + */ if (c == '\n' || c == 0xD) { AddName(strings, s); diff --git a/CPP/Common/MyBuffer2.h b/CPP/Common/MyBuffer2.h index 5cabd73..10edcb1 100644 --- a/CPP/Common/MyBuffer2.h +++ b/CPP/Common/MyBuffer2.h @@ -5,7 +5,7 @@ #include "../../C/Alloc.h" -#include "Defs.h" +#include "MyTypes.h" class CMidBuffer { @@ -15,7 +15,7 @@ class CMidBuffer CLASS_NO_COPY(CMidBuffer) public: - CMidBuffer(): _data(NULL), _size(0) {}; + CMidBuffer(): _data(NULL), _size(0) {} ~CMidBuffer() { ::MidFree(_data); } void Free() { ::MidFree(_data); _data = NULL; _size = 0; } @@ -29,12 +29,12 @@ public: { if (!_data || size > _size) { + ::MidFree(_data); const size_t kMinSize = (size_t)1 << 16; if (size < kMinSize) size = kMinSize; - ::MidFree(_data); _size = 0; - _data = 0; + _data = NULL; _data = (Byte *)::MidAlloc(size); if (_data) _size = size; @@ -42,4 +42,59 @@ public: } }; + +class CAlignedBuffer +{ + Byte *_data; + size_t _size; + + CLASS_NO_COPY(CAlignedBuffer) + +public: + CAlignedBuffer(): _data(NULL), _size(0) {} + ~CAlignedBuffer() + { + ISzAlloc_Free(&g_AlignedAlloc, _data); + } + + void Free() + { + ISzAlloc_Free(&g_AlignedAlloc, _data); + _data = NULL; + _size = 0; + } + + bool IsAllocated() const { return _data != NULL; } + operator Byte *() { return _data; } + operator const Byte *() const { return _data; } + size_t Size() const { return _size; } + + void Alloc(size_t size) + { + if (!_data || size != _size) + { + ISzAlloc_Free(&g_AlignedAlloc, _data); + _size = 0; + _data = NULL; + _data = (Byte *)ISzAlloc_Alloc(&g_AlignedAlloc, size); + if (_data) + _size = size; + } + } + + void AllocAtLeast(size_t size) + { + if (!_data || size > _size) + { + ISzAlloc_Free(&g_AlignedAlloc, _data); + _size = 0; + _data = NULL; + _data = (Byte *)ISzAlloc_Alloc(&g_AlignedAlloc, size); + if (_data) + _size = size; + } + } +}; + + #endif -- cgit v1.2.3