Merge PEI & DXE LzmaCustomDecompressLib. A previous implementation
was causing the LZMA decompression code to request a large buffer, which caused an ASSERT to fail for PEI's AllocatePool. The current implementation, which uses the LzmaDecode function, does not have this issue and therefore both the PEI & DXE versions can use AllocatePool/FreePool. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8236 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -29,7 +29,43 @@
|
||||
#include "Sdk/C/7zVersion.h"
|
||||
#include "Sdk/C/LzmaDec.h"
|
||||
|
||||
extern ISzAlloc g_Alloc;
|
||||
/**
|
||||
Allocation routine used by LZMA decompression.
|
||||
|
||||
@param p Pointer to the ISzAlloc instance
|
||||
@param size The size in bytes to be allocated
|
||||
|
||||
@return The allocated pointer address, or NULL on failure
|
||||
**/
|
||||
STATIC
|
||||
VOID *
|
||||
SzAlloc (
|
||||
void *p,
|
||||
size_t size
|
||||
)
|
||||
{
|
||||
return AllocatePool (size);
|
||||
}
|
||||
|
||||
/**
|
||||
Free routine used by LZMA decompression.
|
||||
|
||||
@param p Pointer to the ISzAlloc instance
|
||||
@param address The address to be freed
|
||||
**/
|
||||
STATIC
|
||||
VOID
|
||||
SzFree (
|
||||
void *p,
|
||||
void *address
|
||||
)
|
||||
{
|
||||
if (address != NULL) {
|
||||
FreePool (address);
|
||||
}
|
||||
}
|
||||
|
||||
STATIC ISzAlloc g_Alloc = { SzAlloc, SzFree };
|
||||
|
||||
#define LZMA_HEADER_SIZE (LZMA_PROPS_SIZE + 8)
|
||||
|
||||
|
Reference in New Issue
Block a user