home *** CD-ROM | disk | FTP | other *** search
/ Game.EXE 2002 May / Game.EXE_05_2002.iso / Alawar / Lib / safe_new.h < prev    next >
Encoding:
C/C++ Source or Header  |  2002-03-27  |  1.3 KB  |  41 lines

  1. #ifndef __SAFE_NEW_H__
  2. #define __SAFE_NEW_H__
  3.  
  4. #define SAFE_NEW
  5.  
  6. #ifdef SAFE_NEW
  7.     #include <stdlib.h> // BUG - ╟Σσ±ⁿ ε∩≡σΣσδσφ size_t
  8.  
  9.     //BCC5.5 ┬σΣσ≥ ±σß  φσ ∩ε ±≥αφΣα≡≥≤, φσ τφα  ε ∩α≡φ√⌡ new πδεßαδⁿφ√⌡ ε∩σ≡α≥ε≡α⌡ delete
  10.     //MSVC6.0 ┬σΣσ≥ ±σß  ∩ε ±≥αφΣα≡≥φ≤, ∩≡σΣ≤∩≡σµΣα  εß Φ⌡ ε≥±≤≥±≥ΓΦΦ.
  11.     //╧ε²≥ε∞≤ ∩≡Φ Ωε∞∩Φδ ÷ΦΦ BCC Φ⌡ Γ√ß≡α±√Γασ∞
  12.  
  13.     void * __cdecl operator new( size_t s, const char * file, int line );
  14.     void __cdecl operator delete( void * p, const char * file, int line );
  15.  
  16.     void * __cdecl operator new[]( size_t s, const char * file, int line );
  17.     void __cdecl operator delete[]( void * p, const char * file, int line );
  18.  
  19.     void * __cdecl operator new( size_t s );
  20.     void __cdecl operator delete( void * p );
  21.  
  22.     void * __cdecl operator new[]( size_t s );
  23.     void __cdecl operator delete[]( void * p );
  24.  
  25.  
  26.     #define new new( __FILE__, __LINE__ )
  27.     #define delete memory_leak_report_delete( __FILE__, __LINE__ ), delete
  28.  
  29.     void memory_leak_report_delete( const char * cf, int cl );
  30.     // The same trick for first-time init, as with std::cout
  31.     class MemoryLeakReporterCreator
  32.     {
  33.         static int ref_count;
  34.     public:
  35.         MemoryLeakReporterCreator();
  36.         ~MemoryLeakReporterCreator();
  37.     };
  38.     static MemoryLeakReporterCreator memory_leak_reporter_creator;
  39. #endif // #ifdef SAFE_NEW
  40.  
  41. #endif //__SAFE_NEW_H__