/*=================================================================== Microsoft Denali Microsoft Confidential. Copyright 1996 Microsoft Corporation. All Rights Reserved. Component: Memory Management File: Memchk.cpp Owner: PramodD TODO: restore the IIS5 debug heap wrappers This is the Memory Manager source file ===================================================================*/ #include "denpre.h" #pragma hdrstop #include "perfdata.h" #include "memchk.h" HANDLE g_hDenaliHeap = NULL; /*=================================================================== int ::DenaliMemIsValid Global function which validates an allocated memory pointer Parameters: NONE Returns: 1 Valid pointer 0 Invalid pointer ===================================================================*/ int DenaliMemIsValid( void * pvIn ) { return 1; } /*=================================================================== ::DenaliMemInit Initializes the memory manager Parameters: const char * szFile Source file in which this was called int lineno The line number in the source file Returns: S_OK on success ===================================================================*/ HRESULT DenaliMemInit( const char *szFile, int lineno ) { g_hDenaliHeap = ::HeapCreate( 0, 0, 0 ); return g_hDenaliHeap ? S_OK : E_OUTOFMEMORY; } /*=================================================================== void ::DenaliMemUnInit Uninitializes the memory manager Parameters: const char * szFile Source file in which this was called int lineno The line number in the source file Returns: NONE ===================================================================*/ void DenaliMemUnInit( const char *szFile, int lineno ) { if (g_hDenaliHeap) { ::HeapDestroy(g_hDenaliHeap); g_hDenaliHeap = NULL; } } /*=================================================================== void ::DenaliLogCall Writes source file and line number for log message to log file Parameters: const char * szLog Log message const char * szFile Source file in which this was called int lineno The line number in the source file Returns: NONE ===================================================================*/ void DenaliLogCall( const char * szLog, const char *szFile, int lineno ) { return; } /*=================================================================== void ::DenaliMemDiagnostics Diagnostics for the memory manager Parameters: const char * szFile Source file in which this was called int lineno The line number in the source file Returns: NONE ===================================================================*/ void DenaliMemDiagnostics( const char *szFile, int lineno ) { return; } /*=================================================================== void * ::DenaliMemAlloc Allocates a block of memory. Parameters: size_t cSize Size in bytes to be allocated const char * szFile Source file in which function is called int lineno Line number at which function is called Returns: NONE ===================================================================*/ void * DenaliMemAlloc( size_t cSize, const char *szFile, int lineno ) { return ::HeapAlloc( g_hDenaliHeap, 0, cSize ); } /*=================================================================== void ::DenaliMemFree Validates and frees a block of allocated memory. Parameters: BYTE * pIn Pointer to free const char * szFile Source file in which function is called int lineno Line number at which function is called Returns: NONE ===================================================================*/ void DenaliMemFree( void * pIn, const char *szFile, int lineno ) { ::HeapFree( g_hDenaliHeap, 0, pIn ); } /*=================================================================== void * ::DenaliMemCalloc Allocates and clears a block of memory. Parameters: size_t cNum Number of elements to be allocated size_t cbSize Size in bytes of each element const char * szFile Source file in which function is called int lineno Line number at which function is called Returns: NONE ===================================================================*/ void * DenaliMemCalloc(size_t cNum, size_t cbSize, const char *szFile, int lineno ) { return ::HeapAlloc( g_hDenaliHeap, HEAP_ZERO_MEMORY, cNum * cbSize ); } /*=================================================================== void ::DenaliMemReAlloc Validates and frees a block of allocated memory. Parameters: BYTE * pIn Pointer memory to ReAllocate size_t cSize Number of bytes to allocate const char * szFile Source file in which function is called int lineno Line number at which function is called Returns: Pointer to allocated block ===================================================================*/ void * DenaliMemReAlloc( void * pIn, size_t cSize, const char *szFile, int lineno ) { return ::HeapReAlloc( g_hDenaliHeap, 0, pIn, cSize ); }