attempt to fix build
[pcsx_rearmed.git] / deps / libchdr / deps / lzma-22.01 / src / Lzma86Dec.c
CommitLineData
9e052883 1/* Lzma86Dec.c -- LZMA + x86 (BCJ) Filter Decoder\r
22016-05-16 : Igor Pavlov : Public domain */\r
3\r
4#include "Precomp.h"\r
5\r
6#include "Lzma86.h"\r
7\r
8#include "Alloc.h"\r
9#include "Bra.h"\r
10#include "LzmaDec.h"\r
11\r
12SRes Lzma86_GetUnpackSize(const Byte *src, SizeT srcLen, UInt64 *unpackSize)\r
13{\r
14 unsigned i;\r
15 if (srcLen < LZMA86_HEADER_SIZE)\r
16 return SZ_ERROR_INPUT_EOF;\r
17 *unpackSize = 0;\r
18 for (i = 0; i < sizeof(UInt64); i++)\r
19 *unpackSize += ((UInt64)src[LZMA86_SIZE_OFFSET + i]) << (8 * i);\r
20 return SZ_OK;\r
21}\r
22\r
23SRes Lzma86_Decode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen)\r
24{\r
25 SRes res;\r
26 int useFilter;\r
27 SizeT inSizePure;\r
28 ELzmaStatus status;\r
29\r
30 if (*srcLen < LZMA86_HEADER_SIZE)\r
31 return SZ_ERROR_INPUT_EOF;\r
32\r
33 useFilter = src[0];\r
34\r
35 if (useFilter > 1)\r
36 {\r
37 *destLen = 0;\r
38 return SZ_ERROR_UNSUPPORTED;\r
39 }\r
40\r
41 inSizePure = *srcLen - LZMA86_HEADER_SIZE;\r
42 res = LzmaDecode(dest, destLen, src + LZMA86_HEADER_SIZE, &inSizePure,\r
43 src + 1, LZMA_PROPS_SIZE, LZMA_FINISH_ANY, &status, &g_Alloc);\r
44 *srcLen = inSizePure + LZMA86_HEADER_SIZE;\r
45 if (res != SZ_OK)\r
46 return res;\r
47 if (useFilter == 1)\r
48 {\r
49 UInt32 x86State;\r
50 x86_Convert_Init(x86State);\r
51 x86_Convert(dest, *destLen, 0, &x86State, 0);\r
52 }\r
53 return SZ_OK;\r
54}\r