42 #if !defined(R__NOSTATS)    45 #   define MEM_CHECKOBJECTPOINTERS    48 #if defined(MEM_STAT) && !defined(MEM_DEBUG)    54 #      define storage_size(p) ((size_t)(((size_t*)p)[-1]))    56 #      define storage_size(p) ((size_t)(((int*)p)[-2]))    59 #   define storage_size(p) ((size_t)0)    98    if (!gMemStatistics) 
return;
   107       if (gTraceIndex >= gTraceCapacity) {
   108          gTraceCapacity = gTraceCapacity*2;
   111       gTraceArray[gTraceIndex++] = p;
   113    if (size >= kObjMaxSize)
   117    gAllocatedTotal += size;
   149    static const char *where = 
"TStorage::Alloc";
   152    void *vp = ::operator 
new[](size);
   154    void *vp = ::operator 
new(size);
   168    ::operator 
delete[](ptr);
   170    ::operator 
delete(ptr);
   180    ::Obsolete(
"ReAlloc(void*,size_t)", 
"v5-34-00", 
"v6-02-00");
   181    ::Info(
"ReAlloc(void*,size_t)", 
"please use ReAlloc(void*,size_t,size_t)");
   191    static const char *where = 
"TStorage::ReAlloc";
   194    void *vp = ::operator 
new[](size);
   196    void *vp = ::operator 
new(size);
   204    memmove(vp, ovp, size);
   206    ::operator 
delete[](ovp);
   208    ::operator 
delete(ovp);
   227    static const char *where = 
"TStorage::ReAlloc";
   233    void *vp = ::operator 
new[](size);
   235    void *vp = ::operator 
new(size);
   243    if (size > oldsize) {
   244       memcpy(vp, ovp, oldsize);
   245       memset((
char*)vp+oldsize, 0, size-oldsize);
   247       memcpy(vp, ovp, size);
   249    ::operator 
delete[](ovp);
   251    ::operator 
delete(ovp);
   262    static const char *where = 
"TStorage::ReAllocChar";
   277    if (size > oldsize) {
   278       memcpy(vp, ovp, oldsize);
   279       memset((
char*)vp+oldsize, 0, size-oldsize);
   281       memcpy(vp, ovp, size);
   292    static const char *where = 
"TStorage::ReAllocInt";
   296       vp = 
new Int_t[size];
   304    vp = 
new Int_t[size];
   307    if (size > oldsize) {
   308       memcpy(vp, ovp, oldsize*
sizeof(
Int_t));
   309       memset((
Int_t*)vp+oldsize, 0, (size-oldsize)*
sizeof(
Int_t));
   311       memcpy(vp, ovp, size*
sizeof(
Int_t));
   325    void* space =  ::operator 
new(sz);
   337    void* space =  ::operator 
new(sz);
   357    ::operator 
delete(vp);
   368 #ifdef R__SIZEDDELETE   375 #if !defined(R__MACOSX) || !defined(MAC_OS_X_VERSION_10_12)   377    ::operator 
delete(vp);
   379    ::operator 
delete(vp, size);
   411 #if defined(MEM_DEBUG) && defined(MEM_STAT)   417    Printf(
"Heap statistics");
   418    Printf(
"%12s%12s%12s%12s", 
"size", 
"alloc", 
"free", 
"diff");
   419    Printf(
"================================================");
   429       Printf(
"------------------------------------------------");
   435       Printf(
"------------------------------------------------");
   440    Printf(
"================================================");
   457    int idum = size; 
int iidum = ix;
   465    ::Obsolete(
"GetHeapBegin()", 
"v5-34-00", 
"v6-02-00");
   474    ::Obsolete(
"GetHeapBegin()", 
"v5-34-00", 
"v6-02-00");
   509    ::Obsolete(
"AddToHeap(ULong_t,ULong_t)", 
"v5-34-00", 
"v6-02-00");
   517    ::Obsolete(
"IsOnHeap(void*)", 
"v5-34-00", 
"v6-02-00");
 static void Dealloc(void *ptr)
De-allocate block of memory, that was allocated via TStorage::Alloc(). 
 
void *(* ReAllocFun_t)(void *, size_t)
 
void Fatal(const char *location, const char *msgfmt,...)
 
static const UInt_t kObjectAllocMemValue
 
static ULong_t GetHeapBegin()
 
static Bool_t MemCheck()
Return kTRUE if the memory leak checker is on. 
 
static void * ObjectAlloc(size_t size)
Used to allocate a TObject on the heap (via TObject::operator new()). 
 
static const char * gSpaceErr
 
static ULong_t GetHeapEnd()
 
void Obsolete(const char *function, const char *asOfVers, const char *removedFromVers)
Use this function to declare a function obsolete. 
 
static ReAllocCFun_t fgReAllocCHook
 
static void AddToHeap(ULong_t begin, ULong_t end)
add a range to the heap 
 
static char * ReAllocChar(char *vp, size_t size, size_t oldsize)
Reallocate (i.e. 
 
static void * fgFreeHookData
 
void Info(const char *location, const char *msgfmt,...)
 
static Bool_t fgHasCustomNewDelete
 
static size_t GetMaxBlockSize()
 
R__EXTERN TVirtualMutex * gGlobalMutex
 
static Bool_t gMemStatistics
 
static void * GetFreeHookData()
return static free hook data 
 
static FreeHookFun_t GetFreeHook()
 
static void EnableStatistics(int size=-1, int ix=-1)
Enable memory usage statistics gathering. 
 
static Bool_t HasCustomNewDelete()
return the has custom delete flag 
 
static void SetCustomNewDelete()
set the has custom delete flag 
 
static Int_t gAllocatedTotal
 
static FreeHookFun_t fgFreeHook
 
static void SetReAllocHooks(ReAllocFun_t func1, ReAllocCFun_t func2)
Set a custom ReAlloc handlers. 
 
static void * Alloc(size_t size)
Allocate a block of memory, that later can be resized using TStorage::ReAlloc(). 
 
static Int_t gAllocated[kObjMaxSize]
 
static void SetFreeHook(FreeHookFun_t func, void *data)
Set a free handler. 
 
static Bool_t IsOnHeap(void *p)
is object at p in the heap? 
 
void *(* ReAllocCFun_t)(void *, size_t, size_t)
 
#define R__LOCKGUARD(mutex)
 
static Int_t gFreed[kObjMaxSize]
 
static void * ReAlloc(void *vp, size_t size)
Reallocate (i.e. 
 
void(* FreeHookFun_t)(void *, void *addr, size_t)
 
typedef void((*Func_t)())
 
static void RemoveStat(void *p)
Register a memory free operation. 
 
Short_t Max(Short_t a, Short_t b)
 
static void SetMaxBlockSize(size_t size)
 
static Int_t gTraceCapacity
 
static void * ObjectAllocArray(size_t size)
Used to allocate array of TObject on the heap (via TObject::operator new[]()). 
 
static Bool_t FilledByObjectAlloc(UInt_t *member)
 
static void ** gTraceArray
 
static ReAllocFun_t fgReAllocHook
 
static size_t fgMaxBlockSize
 
static void ObjectDealloc(void *vp)
Used to deallocate a TObject on the heap (via TObject::operator delete()). 
 
static void PrintStatistics()
Print memory usage statistics. 
 
static Int_t * ReAllocInt(Int_t *vp, size_t size, size_t oldsize)
Reallocate (i.e.