MCPcopy Create free account
hub / github.com/SpartanJ/eepp / reallocPointer

Method reallocPointer

src/eepp/core/memorymanager.cpp:94–132  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

92}
93
94void* MemoryManager::reallocPointer( void* data, const AllocatedPointer& aAllocatedPointer ) {
95 Lock l( sAllocMutex );
96
97 AllocatedPointerMapIt it = sMapPointers.find( data );
98
99 if ( it != sMapPointers.end() && it->second.mTrack )
100 eePRINTL( "Realloc pointer %p at '%s' %d", data, aAllocatedPointer.mFile.c_str(),
101 aAllocatedPointer.mLine );
102
103 if ( it == sMapPointers.end() )
104 return addPointer( aAllocatedPointer );
105
106 if ( aAllocatedPointer.mTrack )
107 eePRINTL( "Reallocating pointer %p at '%s' %d", aAllocatedPointer.mData,
108 aAllocatedPointer.mFile.c_str(), aAllocatedPointer.mLine );
109
110 if ( it->first != aAllocatedPointer.mData ) {
111 removePointer( data, aAllocatedPointer.mFile.c_str(), aAllocatedPointer.mLine );
112 addPointer( aAllocatedPointer );
113 } else {
114 sTotalMemoryUsage -= it->second.mMemory;
115 it->second.mMemory = aAllocatedPointer.mMemory;
116 it->second.mFile = aAllocatedPointer.mFile;
117 it->second.mLine = aAllocatedPointer.mLine;
118 it->second.mTrack = aAllocatedPointer.mTrack;
119
120 sTotalMemoryUsage += aAllocatedPointer.mMemory;
121
122 if ( sPeakMemoryUsage < sTotalMemoryUsage ) {
123 sPeakMemoryUsage = sTotalMemoryUsage;
124 }
125
126 if ( aAllocatedPointer.mMemory > sBiggestAllocation.mMemory ) {
127 sBiggestAllocation = aAllocatedPointer;
128 }
129 }
130
131 return aAllocatedPointer.mData;
132}
133
134bool MemoryManager::removePointer( void* data, const char* file, const size_t& line ) {
135 Lock l( sAllocMutex );

Callers

nothing calls this directly

Calls 4

eePRINTLFunction · 0.85
c_strMethod · 0.80
findMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected