Annotation of OpenXM_contrib/gc/gc_cpp.cc, Revision 1.1
1.1 ! maekawa 1: /*************************************************************************
! 2: Copyright (c) 1994 by Xerox Corporation. All rights reserved.
! 3:
! 4: THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
! 5: OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
! 6:
! 7: Last modified on Sat Nov 19 19:31:14 PST 1994 by ellis
! 8: on Sat Jun 8 15:10:00 PST 1994 by boehm
! 9:
! 10: Permission is hereby granted to copy this code for any purpose,
! 11: provided the above notices are retained on all copies.
! 12:
! 13: This implementation module for gc_c++.h provides an implementation of
! 14: the global operators "new" and "delete" that calls the Boehm
! 15: allocator. All objects allocated by this implementation will be
! 16: non-collectable but part of the root set of the collector.
! 17:
! 18: You should ensure (using implementation-dependent techniques) that the
! 19: linker finds this module before the library that defines the default
! 20: built-in "new" and "delete".
! 21:
! 22: Authors: John R. Ellis and Jesse Hull
! 23:
! 24: **************************************************************************/
! 25: /* Boehm, December 20, 1994 7:26 pm PST */
! 26:
! 27: #include "gc_cpp.h"
! 28:
! 29: void* operator new( size_t size ) {
! 30: return GC_MALLOC_UNCOLLECTABLE( size );}
! 31:
! 32: void operator delete( void* obj ) {
! 33: GC_FREE( obj );}
! 34:
! 35: #ifdef _MSC_VER
! 36: // This new operator is used by VC++ in case of Debug builds !
! 37: void* operator new( size_t size,
! 38: int ,//nBlockUse,
! 39: const char * szFileName,
! 40: int nLine
! 41: ) {
! 42: # ifndef GC_DEBUG
! 43: return GC_malloc_uncollectable( size );
! 44: # else
! 45: return GC_debug_malloc_uncollectable(size, szFileName, nLine);
! 46: # endif
! 47: }
! 48: #endif
! 49:
! 50: #ifdef OPERATOR_NEW_ARRAY
! 51:
! 52: void* operator new[]( size_t size ) {
! 53: return GC_MALLOC_UNCOLLECTABLE( size );}
! 54:
! 55: void operator delete[]( void* obj ) {
! 56: GC_FREE( obj );}
! 57:
! 58: #endif /* OPERATOR_NEW_ARRAY */
! 59:
! 60:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>