IN OUT VOID *Scratch\r
)\r
{\r
- SRes LzmaResult;\r
- ELzmaStatus Status;\r
- SizeT DecodedBufSize;\r
- SizeT EncodedDataSize;\r
- ISzAllocWithData AllocFuncs = {\r
- { SzAlloc, SzFree },\r
- Scratch,\r
- SCRATCH_BUFFER_REQUEST_SIZE\r
- };\r
-\r
- DecodedBufSize = GetDecodedSizeOfBuf((UINT8*)Source);\r
+ SRes LzmaResult;\r
+ ELzmaStatus Status;\r
+ SizeT DecodedBufSize;\r
+ SizeT EncodedDataSize;\r
+ ISzAllocWithData AllocFuncs;\r
+\r
+ AllocFuncs.Functions.Alloc = SzAlloc;\r
+ AllocFuncs.Functions.Free = SzFree;\r
+ AllocFuncs.Buffer = Scratch;\r
+ AllocFuncs.BufferSize = SCRATCH_BUFFER_REQUEST_SIZE;\r
+ \r
+ DecodedBufSize = (SizeT)GetDecodedSizeOfBuf((UINT8*)Source);\r
EncodedDataSize = (SizeT) (SourceSize - LZMA_HEADER_SIZE);\r
\r
LzmaResult = LzmaDecode(\r
LZMA_PROPS_SIZE,\r
LZMA_FINISH_END,\r
&Status,\r
- (ISzAlloc*) &AllocFuncs\r
+ &(AllocFuncs.Functions)\r
);\r
\r
if (LzmaResult == SZ_OK) {\r