Lzma86Dec.c (p7zip_15.14.1_src_all) | : | Lzma86Dec.c (p7zip_16.02_src_all) | ||
---|---|---|---|---|
/* Lzma86Dec.c -- LZMA + x86 (BCJ) Filter Decoder | /* Lzma86Dec.c -- LZMA + x86 (BCJ) Filter Decoder | |||
2015-11-08 : Igor Pavlov : Public domain */ | 2016-05-16 : Igor Pavlov : Public domain */ | |||
#include "Precomp.h" | #include "Precomp.h" | |||
#include "Lzma86.h" | #include "Lzma86.h" | |||
#include "Alloc.h" | #include "Alloc.h" | |||
#include "Bra.h" | #include "Bra.h" | |||
#include "LzmaDec.h" | #include "LzmaDec.h" | |||
static void *SzAlloc(void *p, size_t size) { UNUSED_VAR(p); return MyAlloc(size) | ||||
; } | ||||
static void SzFree(void *p, void *address) { UNUSED_VAR(p); MyFree(address); } | ||||
SRes Lzma86_GetUnpackSize(const Byte *src, SizeT srcLen, UInt64 *unpackSize) | SRes Lzma86_GetUnpackSize(const Byte *src, SizeT srcLen, UInt64 *unpackSize) | |||
{ | { | |||
unsigned i; | unsigned i; | |||
if (srcLen < LZMA86_HEADER_SIZE) | if (srcLen < LZMA86_HEADER_SIZE) | |||
return SZ_ERROR_INPUT_EOF; | return SZ_ERROR_INPUT_EOF; | |||
*unpackSize = 0; | *unpackSize = 0; | |||
for (i = 0; i < sizeof(UInt64); i++) | for (i = 0; i < sizeof(UInt64); i++) | |||
*unpackSize += ((UInt64)src[LZMA86_SIZE_OFFSET + i]) << (8 * i); | *unpackSize += ((UInt64)src[LZMA86_SIZE_OFFSET + i]) << (8 * i); | |||
return SZ_OK; | return SZ_OK; | |||
} | } | |||
SRes Lzma86_Decode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen) | SRes Lzma86_Decode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen) | |||
{ | { | |||
ISzAlloc g_Alloc = { SzAlloc, SzFree }; | ||||
SRes res; | SRes res; | |||
int useFilter; | int useFilter; | |||
SizeT inSizePure; | SizeT inSizePure; | |||
ELzmaStatus status; | ELzmaStatus status; | |||
if (*srcLen < LZMA86_HEADER_SIZE) | if (*srcLen < LZMA86_HEADER_SIZE) | |||
return SZ_ERROR_INPUT_EOF; | return SZ_ERROR_INPUT_EOF; | |||
useFilter = src[0]; | useFilter = src[0]; | |||
End of changes. 3 change blocks. | ||||
6 lines changed or deleted | 1 lines changed or added |