/** @file\r
LZMA Decompress interfaces\r
\r
- Copyright (c) 2009, Intel Corporation<BR>\r
+ Copyright (c) 2009 - 2010, Intel Corporation<BR>\r
All rights reserved. This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
)\r
{\r
VOID *Addr;\r
- ISzAllocWithData *Private = (ISzAllocWithData*) P;\r
+ ISzAllocWithData *Private;\r
+\r
+ Private = (ISzAllocWithData*) P;\r
\r
if (Private->BufferSize >= Size) {\r
Addr = Private->Buffer;\r
then RETURN_INVALID_PARAMETER is returned.\r
\r
@param Source The source buffer containing the compressed data.\r
+ @param SourceSize The size of source buffer.\r
@param Destination The destination buffer to store the decompressed data\r
@param Scratch A temporary scratch buffer that is used to perform the decompression.\r
This is an optional parameter that may be NULL if the \r
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