-/** Check whether this is bootstrapped memory that we should not
- free. */
-
-bool DontFree( void * ptr ){
- return (ptr>=(&bootstrapmemory[0])&&ptr<(&bootstrapmemory[BOOTSTRAPBYTES]));
-}
-
-/** Snapshotting malloc implementation for user programs. */
-void *malloc( size_t size ) {
- if (mySpace)
- return mspace_malloc( mySpace, size );
- else
- return HandleEarlyAllocationRequest( size );
-}
-
-/** Snapshotting free implementation for user programs. */
-void free( void * ptr ){
- if( DontFree( ptr ) ) return;
- mspace_free( mySpace, ptr );
-}
-
-/** Snapshotting realloc implementation for user programs. */
-void *realloc( void *ptr, size_t size ){
- return mspace_realloc( mySpace, ptr, size );
-}
-
-/** Snapshotting calloc implementation for user programs. */
-void * calloc( size_t num, size_t size ){
- if (mySpace)
- return mspace_calloc( mySpace, num, size );
- else {
- void *tmp=HandleEarlyAllocationRequest( size * num );
- std::memset( tmp, 0, size * num );
- return tmp;
- }
-}
-
-/** Snapshotting new operator for user programs. */
-void * operator new(size_t size) throw(std::bad_alloc) {
- return malloc(size);
-}
-
-/** Snapshotting delete operator for user programs. */
-void operator delete(void *p) throw() {
- free(p);
-}