#include "defs.h"#include <iostream>#include <sstream>#include <stdio.h>#include "tMemManager.h"#include "tError.h"#include "tList.h"

Go to the source code of this file.
| Classes | |
| class | tMockMutex | 
| class | tBottleNeck | 
| struct | tAllocationInfo | 
| class | tMemMan | 
| class | tMemManager | 
| struct | chunkinfo | 
| class | memblock | 
| Defines | |
| #define | NEW | 
| #define | SAFETYBYTES 0 | 
| #define | PAD 197 | 
| #define | MAX_SIZE 109 | 
| Functions | |
| static wchar_t * | wmemset (wchar_t *wcs, wchar_t wc, size_t n) throw () | 
| void | leak () | 
| void | begin_checkleaks () | 
| void *_cdecl | operator new (size_t size) THROW_BADALLOC | 
| void _cdecl | operator delete (void *ptr) THROW_NOTHING | 
| void | operator delete (void *ptr, bool keep) THROW_NOTHING | 
| void * | operator new (size_t size, const char *classn, const char *file, int l) THROW_BADALLOC | 
| void | operator delete (void *ptr, const char *classname, const char *file, int line) THROW_NOTHING | 
| void * | operator new[] (size_t size) THROW_BADALLOC | 
| void | operator delete[] (void *ptr) THROW_NOTHING | 
| void * | operator new[] (size_t size, const char *classn, const char *file, int l) THROW_BADALLOC | 
| void | operator delete[] (void *ptr, const char *classname, const char *file, int line) THROW_NOTHING | 
| void * | real_calloc (size_t nmemb, size_t size) | 
| void * | real_malloc (size_t size) | 
| void | real_free (void *ptr) | 
| void * | real_realloc (void *ptr, size_t size) | 
| char * | real_strdup (char const *ptr) | 
| void * | real_mmove (void *ptr, size_t size) | 
| char * | real_strmove (char *ptr) | 
| char * | tStrDup (char const *s) | 
| Variables | |
| static bool | reported = false | 
| static tMockMutex | st_mutex | 
| static bool | inited = false | 
| static tMemManager | memman [MAX_SIZE+1] | 
| #define MAX_SIZE 109 | 
| #define NEW | 
Definition at line 67 of file tMemManager.cpp.
| #define PAD 197 | 
Definition at line 160 of file tMemManager.cpp.
Referenced by memblock::Check(), and memblock::memblock().
| #define SAFETYBYTES 0 | 
Definition at line 158 of file tMemManager.cpp.
Referenced by memblock::Check(), memblock::chunk(), memblock::create(), memblock::data(), memblock::Dispose(), memblock::memblock(), memblock::safety(), and tMemManager::tMemManager().
| void begin_checkleaks | ( | ) | 
| void leak | ( | ) | 
Definition at line 134 of file tMemManager.cpp.
References NULL, tMemManBase::Profile(), and reported.
00134 { 00135 if (!reported) 00136 { 00137 reported=true; 00138 #ifdef DEBUG 00139 #ifdef WIN32 00140 MessageBox (NULL, "Memory leak detected!" , "Memory Leak", MB_OK); 00141 #else 00142 std::cerr << "\n\nMemory leak detected!\n\n"; 00143 #endif 00144 #endif 00145 tMemManBase::Profile(); 00146 } 00147 }

| void operator delete | ( | void * | ptr, | |
| const char * | classname, | |||
| const char * | file, | |||
| int | line | |||
| ) | 
| void operator delete | ( | void * | ptr, | |
| bool | keep | |||
| ) | 
Definition at line 1279 of file tMemManager.cpp.
01282 { 01283 tAllocationInfo info( false ); 01284 01285 if (ptr){ 01286 if (keep) 01287 tMemMan::DisposeButKeep(info, ptr); 01288 else 01289 tMemMan::Dispose(info, ptr);
| void _cdecl operator delete | ( | void * | ptr | ) | 
| void operator delete[] | ( | void * | ptr, | |
| const char * | classname, | |||
| const char * | file, | |||
| int | line | |||
| ) | 
| void operator delete[] | ( | void * | ptr | ) | 
| void* operator new | ( | size_t | size, | |
| const char * | classn, | |||
| const char * | file, | |||
| int | l | |||
| ) | 
Definition at line 1293 of file tMemManager.cpp.
01296 { 01297 tAllocationInfo info( false ); 01298 #ifdef LEAKFINDER 01299 info.filename=file; 01300 info.classname=classn; 01301 info.line=l; 01302 01303 info.checksum = 01304 #ifndef PROFILER 01305 size + 01306 #endif 01307 info.line * 19671; 01308 01309 int c=1379; 01310 while (*file){ 01311 info.checksum = (info.checksum + (*file)*c) % MAXCHECKSUM; 01312 c = (c * 79 ) % MAXCHECKSUM; 01313 file++; 01314 } 01315 while (*classn){ 01316 info.checksum = (info.checksum + (*classn)*c) % MAXCHECKSUM; 01317 c = (c * 79 ) % MAXCHECKSUM; 01318 classn++; 01319 } 01320 01321 #ifdef PROFILER 01322 while (checksum_filename[info.checksum] && (checksum_filename[info.checksum] != info.filename || checksum_line[info.checksum] != info.line)) 01323 info.checksum = (info.checksum+1) % MAXCHECKSUM; 01324 #endif 01325
| void* _cdecl operator new | ( | size_t | size | ) | 
Definition at line 1261 of file tMemManager.cpp.
01264 { 01265 tAllocationInfo info( false ); 01266 01267 #ifdef LEAKFINDER 01268 #ifndef HAVE_LIBZTHREAD 01269 info.checksum = size; 01270 #endif
| void* operator new[] | ( | size_t | size, | |
| const char * | classn, | |||
| const char * | file, | |||
| int | l | |||
| ) | 
Definition at line 1352 of file tMemManager.cpp.
01355 { 01356 tAllocationInfo info( true ); 01357 #ifdef LEAKFINDER 01358 info.filename=file; 01359 info.classname=classn; 01360 info.line=l; 01361 01362 info.checksum = 01363 #ifndef PROFILER 01364 size + 01365 #endif 01366 info.line * 19671; 01367 01368 int c=1379; 01369 while (*file){ 01370 info.checksum = (info.checksum + (*file)*c) % MAXCHECKSUM; 01371 c = (c * 79 ) % MAXCHECKSUM; 01372 file++; 01373 } 01374 while (*classn){ 01375 info.checksum = (info.checksum + (*classn)*c) % MAXCHECKSUM; 01376 c = (c * 79 ) % MAXCHECKSUM; 01377 classn++; 01378 } 01379 01380 #ifdef PROFILER 01381 while (checksum_filename[info.checksum] && (checksum_filename[info.checksum] != info.filename || checksum_line[info.checksum] != info.line)) 01382 info.checksum = (info.checksum+1) % MAXCHECKSUM; 01383 #endif 01384
| void* operator new[] | ( | size_t | size | ) | 
Definition at line 1333 of file tMemManager.cpp.
01336 { 01337 tAllocationInfo info( true ); 01338 #ifdef LEAKFINDER 01339 #ifndef HAVE_LIBZTHREAD 01340 info.checksum = size % MAXCHECKSUM; 01341 #endif
| void* real_calloc | ( | size_t | nmemb, | |
| size_t | size | |||
| ) | 
| void real_free | ( | void * | ptr | ) | 
| void* real_malloc | ( | size_t | size | ) | 
| void* real_mmove | ( | void * | ptr, | |
| size_t | size | |||
| ) | 
Definition at line 1541 of file tMemManager.cpp.
01545 { 01546 // create new memory, copy, free old memory 01547 void * ret = tNEW(char)[size]; 01548 memcpy( ret, ptr, size ); 01549 real_free( ptr );
| void* real_realloc | ( | void * | ptr, | |
| size_t | size | |||
| ) | 
| char* real_strdup | ( | char const * | ptr | ) | 
| char* real_strmove | ( | char * | ptr | ) | 
Definition at line 1551 of file tMemManager.cpp.
Referenced by tStrDup().
01555 { 01556 if ( ptr ) 01557 return static_cast< char * >( real_mmove( ptr, strlen( ptr ) + 1 ) );

| char* tStrDup | ( | char const * | s | ) | 
Definition at line 1561 of file tMemManager.cpp.
References real_strmove(), and strdup.

| static wchar_t* wmemset | ( | wchar_t * | wcs, | |
| wchar_t | wc, | |||
| size_t | n | |||
| ) | throw ()  [inline, static] | 
Definition at line 122 of file tMemManager.cpp.
Referenced by memblock::Alloc(), and memblock::Dispose().
00123 { 00124 // fill memory 00125 for( size_t i = 0; i < n; ++i ) 00126 { 00127 wcs[i] = wc; 00128 } 00129 00130 return wcs; 00131 }

| bool inited = false  [static] | 
Definition at line 246 of file tMemManager.cpp.
Referenced by nConfItemVersionWatcher::OnVersionChange(), and uPlayerPrototype::uPlayerPrototype().
| tMemManager memman[MAX_SIZE+1]  [static] | 
Definition at line 945 of file tMemManager.cpp.
| bool reported = false  [static] | 
| tMockMutex st_mutex  [static] | 
Definition at line 103 of file tMemManager.cpp.
 1.5.4
 1.5.4