Something went wrong. Try again.
Reactos
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667/* * 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. */
/* INCLUDES ******************************************************************/#include "precomp.h"
/* DATA **********************************************************************/
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;
/* FUNCTIONS *****************************************************************/
VOIDWINAPIDns_Free(IN PVOID Address){ /* Check if whoever imported us specified a special free function */ if (pDnsFreeFunction) { /* Use it */ pDnsFreeFunction(Address); } else { /* Use our own */ LocalFree(Address); }}
PVOIDWINAPIDns_AllocZero(IN SIZE_T Size){ PVOID Buffer;
/* Check if whoever imported us specified a special allocation function */ if (pDnsAllocFunction) { /* Use it to allocate the memory */ Buffer = pDnsAllocFunction(Size); if (Buffer) { /* Zero it out */ RtlZeroMemory(Buffer, Size); } } else { /* Use our default */ Buffer = LocalAlloc(LMEM_ZEROINIT, Size); }
/* Return the allocate pointer */ return Buffer;}