home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1997 October
/
Chip_1997-10_cd.bin
/
tema
/
sybase
/
powerj
/
hpp.z
/
WNEW.HPP
< prev
next >
Wrap
C/C++ Source or Header
|
1996-12-13
|
3KB
|
65 lines
/**********************************************************************
*
* wnew.hpp -- This file may be included multiple times to redefine the
* new & delete operators as required.
*
**********************************************************************/
#ifndef _WMEMORY_HPP_INCLUDED
#include "wmemory.hpp"
#endif
#undef new
#undef delete
#undef WNew
#undef WDelete
//
// Make sure we declare all the new operators...
//
extern void *operator new( size_t );
extern void *operator new( size_t, const WChar *, const WChar *, WULong );
extern void *operator new( size_t, void * );
extern void *operator new []( size_t );
extern void *operator new []( size_t, const WChar *, const WChar *, WULong );
extern void *operator new []( size_t, void * );
extern void operator delete( void * );
extern void operator delete []( void * );
#undef NEW_OPERATOR
#undef DELETE_OPERATOR
#if defined( __NO_NEW__ ) && defined( _DEBUG ) && !defined( _RELEASE_MEMORY )
#define NEW_OPERATOR new(NULL,NULL,0xFFFFFFFF)
#ifdef __BUILDING_WCM__
extern void __WFastLogNextDelete( void *ptr, const WChar *functionName,
const WChar *fileName, WULong line );
#define DELETE_OPERATOR __WFastLogNextDelete(NULL,NULL,NULL,0xFFFFFFFF),delete
#define WDeleteScalar(x) __WFastLogNextDelete((void*)(x),NULL,NULL,0xFFFFFFFF),delete x
#define WDeleteArray(x) __WFastLogNextDelete((void*)(x),NULL,NULL,0xFFFFFFFF),delete [] x
#else
#define DELETE_OPERATOR WMemory::LogNextDelete(NULL,NULL,NULL,0xFFFFFFFF),delete
#define WDeleteScalar(x) WMemory::LogNextDelete((void*)(x),NULL,NULL,0xFFFFFFFF),delete x
#define WDeleteArray(x) WMemory::LogNextDelete((void*)(x),NULL,NULL,0xFFFFFFFF),delete [] x
#endif
#elif defined( _DEBUG ) && !defined( _RELEASE_MEMORY )
#define NEW_OPERATOR new(__WTEXT(__FUNCTION__),__WTEXT(__FILE__),__LINE__)
#define DELETE_OPERATOR WMemory::LogNextDelete(NULL,__WTEXT(__FUNCTION__),__WTEXT(__FILE__),__LINE__),delete
#define WDeleteScalar(x) WMemory::LogNextDelete((void*)(x),__WTEXT(__FUNCTION__),__WTEXT(__FILE__),__LINE__),delete x
#define WDeleteArray(x) WMemory::LogNextDelete((void*)(x),__WTEXT(__FUNCTION__),__WTEXT(__FILE__),__LINE__),delete [] x
#else
#define NEW_OPERATOR new
#define DELETE_OPERATOR delete
#define WDeleteScalar(x) delete x
#define WDeleteArray(x) delete [] x
#endif
#define WNew new
#define WDelete delete
#define new NEW_OPERATOR
#define delete DELETE_OPERATOR
#define _WNEW_OPERATOR NEW_OPERATOR
#define _WDELETE_OPERATOR DELETE_OPERATOR