mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-10 16:07:09 -06:00
15.05
This commit is contained in:
committed by
Kornel Lesiński
parent
0713a3ab80
commit
54490d51d5
@@ -12,29 +12,21 @@
|
||||
namespace NCompress {
|
||||
namespace NLzma {
|
||||
|
||||
static void *SzBigAlloc(void *, size_t size) { return BigAlloc(size); }
|
||||
static void SzBigFree(void *, void *address) { BigFree(address); }
|
||||
static ISzAlloc g_BigAlloc = { SzBigAlloc, SzBigFree };
|
||||
|
||||
static void *SzAlloc(void *, size_t size) { return MyAlloc(size); }
|
||||
static void SzFree(void *, void *address) { MyFree(address); }
|
||||
static ISzAlloc g_Alloc = { SzAlloc, SzFree };
|
||||
|
||||
CEncoder::CEncoder()
|
||||
{
|
||||
_encoder = 0;
|
||||
_encoder = NULL;
|
||||
_encoder = LzmaEnc_Create(&g_Alloc);
|
||||
if (_encoder == 0)
|
||||
if (!_encoder)
|
||||
throw 1;
|
||||
}
|
||||
|
||||
CEncoder::~CEncoder()
|
||||
{
|
||||
if (_encoder != 0)
|
||||
if (_encoder)
|
||||
LzmaEnc_Destroy(_encoder, &g_Alloc, &g_BigAlloc);
|
||||
}
|
||||
|
||||
inline wchar_t GetUpperChar(wchar_t c)
|
||||
static inline wchar_t GetUpperChar(wchar_t c)
|
||||
{
|
||||
if (c >= 'a' && c <= 'z')
|
||||
c -= 0x20;
|
||||
@@ -51,22 +43,21 @@ static int ParseMatchFinder(const wchar_t *s, int *btMode, int *numHashBytes)
|
||||
int numHashBytesLoc = (int)(*s++ - L'0');
|
||||
if (numHashBytesLoc < 4 || numHashBytesLoc > 4)
|
||||
return 0;
|
||||
if (*s++ != 0)
|
||||
if (*s != 0)
|
||||
return 0;
|
||||
*btMode = 0;
|
||||
*numHashBytes = numHashBytesLoc;
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (c != L'B')
|
||||
return 0;
|
||||
|
||||
if (GetUpperChar(*s++) != L'T')
|
||||
return 0;
|
||||
int numHashBytesLoc = (int)(*s++ - L'0');
|
||||
if (numHashBytesLoc < 2 || numHashBytesLoc > 4)
|
||||
return 0;
|
||||
c = GetUpperChar(*s++);
|
||||
if (c != L'\0')
|
||||
if (*s != 0)
|
||||
return 0;
|
||||
*btMode = 1;
|
||||
*numHashBytes = numHashBytesLoc;
|
||||
|
||||
Reference in New Issue
Block a user