diff options
Diffstat (limited to 'tier0/mem_helpers.h')
| -rw-r--r-- | tier0/mem_helpers.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tier0/mem_helpers.h b/tier0/mem_helpers.h new file mode 100644 index 0000000..a7656d7 --- /dev/null +++ b/tier0/mem_helpers.h @@ -0,0 +1,38 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#ifndef MEM_HELPERS_H +#define MEM_HELPERS_H +#ifdef _WIN32 +#pragma once +#endif + + +// Normally, the runtime libraries like to mess with the memory returned by malloc(), +// which can create problems trying to repro bugs in debug builds or in the debugger. +// +// If the debugger is present, it initializes data to 0xbaadf00d, which makes floating +// point numbers come out to about 0.1. +// +// If the debugger is not present, and it's a debug build, then you get 0xcdcdcdcd, +// which is about 25 million. +// +// Otherwise, you get uninitialized memory. +// +// In here, we make sure the memory is either random garbage, or it's set to +// 0xffeeffee, which casts to a NAN. +extern bool g_bInitMemory; +#define ApplyMemoryInitializations( pMem, nSize ) if ( !g_bInitMemory ) ; else { DoApplyMemoryInitializations( pMem, nSize ); } +void DoApplyMemoryInitializations( void *pMem, int nSize ); + +size_t CalcHeapUsed(); + +// Call this to reserve the bottom 4 GB of memory in order to ensure that we will +// get crashes if we put pointers in DWORDs or ints. This will be a NOP on some +// platforms (Xbox 360, PS3, 32-bit Windows, etc.) +void ReserveBottomMemory(); + +#endif // MEM_HELPERS_H |