* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS DNS Shared Library
* FILE: lib/dnslib/memory.c
* PURPOSE: DNS Memory Manager Implementation and Heap.
*/
#include "precomp.h"
typedef PVOID
(WINAPI *PDNS_ALLOC_FUNCTION)(IN SIZE_T Size);
typedef VOID
(WINAPI *PDNS_FREE_FUNCTION)(IN PVOID Buffer);
PDNS_ALLOC_FUNCTION pDnsAllocFunction;
PDNS_FREE_FUNCTION pDnsFreeFunction;
VOID
WINAPI
Dns_Free(IN PVOID Address)
{
if (pDnsFreeFunction)
{
pDnsFreeFunction(Address);
}
else
{
LocalFree(Address);
}
}
PVOID
WINAPI
Dns_AllocZero(IN SIZE_T Size)
{
PVOID Buffer;
if (pDnsAllocFunction)
{
Buffer = pDnsAllocFunction(Size);
if (Buffer)
{
RtlZeroMemory(Buffer, Size);
}
}
else
{
Buffer = LocalAlloc(LMEM_ZEROINIT, Size);
}
return Buffer;
}