1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /*************************************************************************
- Copyright (c) 1994 by Xerox Corporation. All rights reserved.
-
- THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
-
- Last modified on Sat Nov 19 19:31:14 PST 1994 by ellis
- on Sat Jun 8 15:10:00 PST 1994 by boehm
- Permission is hereby granted to copy this code for any purpose,
- provided the above notices are retained on all copies.
- This implementation module for gc_c++.h provides an implementation of
- the global operators "new" and "delete" that calls the Boehm
- allocator. All objects allocated by this implementation will be
- non-collectable but part of the root set of the collector.
- You should ensure (using implementation-dependent techniques) that the
- linker finds this module before the library that defines the default
- built-in "new" and "delete".
- Authors: John R. Ellis and Jesse Hull
- **************************************************************************/
- /* Boehm, December 20, 1994 7:26 pm PST */
- #include "gc_cpp.h"
- void* operator new( size_t size ) {
- return GC_MALLOC_UNCOLLECTABLE( size );}
-
- void operator delete( void* obj ) {
- GC_FREE( obj );}
-
- #ifdef GC_OPERATOR_NEW_ARRAY
- void* operator new[]( size_t size ) {
- return GC_MALLOC_UNCOLLECTABLE( size );}
-
- void operator delete[]( void* obj ) {
- GC_FREE( obj );}
- #endif /* GC_OPERATOR_NEW_ARRAY */
- #ifdef _MSC_VER
- // This new operator is used by VC++ in case of Debug builds !
- void* operator new( size_t size,
- int ,//nBlockUse,
- const char * szFileName,
- int nLine )
- {
- #ifndef GC_DEBUG
- return GC_malloc_uncollectable( size );
- #else
- return GC_debug_malloc_uncollectable(size, szFileName, nLine);
- #endif
- }
- #endif /* _MSC_VER */
|