home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / sybase / starbuck / hpp.z / WNEW.HPP < prev    next >
C/C++ Source or Header  |  1996-07-22  |  2KB  |  57 lines

  1. /**********************************************************************
  2.  *
  3.  * wnew.hpp -- This file may be included multiple times to redefine the
  4.  *             new & delete operators as required.
  5.  *
  6.  **********************************************************************/
  7.  
  8. #ifndef _WMEMORY_HPP_INCLUDED
  9. #include "wmemory.hpp"
  10. #endif
  11.  
  12. #undef new
  13. #undef delete
  14. #undef WNew
  15. #undef WDelete
  16.  
  17. //
  18. // Make sure we declare all the new operators...
  19. //
  20.     
  21. extern void *operator new( size_t );
  22. extern void *operator new( size_t, const WChar *, const WChar *, WULong );
  23. extern void *operator new( size_t, void * );
  24. extern void *operator new []( size_t );
  25. extern void *operator new []( size_t, const WChar *, const WChar *, WULong );
  26. extern void *operator new []( size_t, void * );
  27. extern void operator delete( void * );
  28. extern void operator delete []( void * );
  29.  
  30. #undef NEW_OPERATOR
  31. #undef DELETE_OPERATOR
  32.  
  33. #if defined( __NO_NEW__ ) && defined( _DEBUG ) && !defined( _RELEASE_MEMORY )
  34. #define NEW_OPERATOR     new(NULL,NULL,0xFFFFFFFF)
  35. #define DELETE_OPERATOR  WMemory::LogNextDelete(NULL,NULL,NULL,0xFFFFFFFF),delete
  36. #define WDeleteScalar(x) WMemory::LogNextDelete((void*)(x),NULL,NULL,0xFFFFFFFF),delete x
  37. #define WDeleteArray(x)  WMemory::LogNextDelete((void*)(x),NULL,NULL,0xFFFFFFFF),delete [] x
  38. #elif defined( _DEBUG ) && !defined( _RELEASE_MEMORY )
  39. #define NEW_OPERATOR     new(__WTEXT(__FUNCTION__),__WTEXT(__FILE__),__LINE__)
  40. #define DELETE_OPERATOR  WMemory::LogNextDelete(NULL,__WTEXT(__FUNCTION__),__WTEXT(__FILE__),__LINE__),delete
  41. #define WDeleteScalar(x) WMemory::LogNextDelete((void*)(x),__WTEXT(__FUNCTION__),__WTEXT(__FILE__),__LINE__),delete x
  42. #define WDeleteArray(x)  WMemory::LogNextDelete((void*)(x),__WTEXT(__FUNCTION__),__WTEXT(__FILE__),__LINE__),delete [] x
  43. #else
  44. #define NEW_OPERATOR     new
  45. #define DELETE_OPERATOR  delete
  46. #define WDeleteScalar(x) delete x
  47. #define WDeleteArray(x)  delete [] x
  48. #endif
  49.  
  50. #define WNew    new
  51. #define WDelete delete
  52. #define new     NEW_OPERATOR
  53. #define delete  DELETE_OPERATOR
  54.  
  55. #define _WNEW_OPERATOR          NEW_OPERATOR
  56. #define _WDELETE_OPERATOR       DELETE_OPERATOR
  57.