really should be using a type that is big enough for all commonly used data types...
[c11tester.git] / mymemory.cc
index 245b2701807710bbca6c1f69ea1df662e89e9181..fcc98db547e67633bb8b0c665327f3402edfdea0 100644 (file)
@@ -14,13 +14,12 @@ static mspace sStaticSpace = NULL;
 #endif
 
 /** Non-snapshotting malloc for our use. */
-
 void *MYMALLOC(size_t size) {
 #if USE_MPROTECT_SNAPSHOT
        static void *(*mallocp)(size_t size);
        char *error;
        void *ptr;
-  
+
        /* get address of libc malloc */
        if (!mallocp) {
                mallocp = ( void * ( * )( size_t ) )dlsym(RTLD_NEXT, "malloc");
@@ -29,14 +28,14 @@ void *MYMALLOC(size_t size) {
                        exit(EXIT_FAILURE);
                }
        }
-       ptr = mallocp(size);     
+       ptr = mallocp(size);
        return ptr;
 #else
        if( !sTheRecord ){
                createSharedLibrary();
        }
        if( NULL == sStaticSpace )
-               sStaticSpace = create_mspace_with_base( ( void * )( sTheRecord->mSharedMemoryBase ), SHARED_MEMORY_DEFAULT -sizeof( struct Snapshot_t ), 1 );
+               sStaticSpace = create_mspace_with_base( ( void * )( sTheRecord->mSharedMemoryBase ), SHARED_MEMORY_DEFAULT -sizeof( struct Snapshot ), 1 );
        return mspace_malloc( sStaticSpace, size );
 #endif
 }
@@ -100,11 +99,8 @@ mspace mySpace = NULL;
 /** This global references the unaligned memory address that was malloced for the snapshotting heap */
 void * basemySpace = NULL;
 
-//Subramanian --- please make these work for the fork based approach
-
 /** Adding the fix for not able to allocate through a reimplemented calloc at the beginning before instantiating our allocator
 A bit circumspect about adding an sbrk. linux docs say to avoid using it... */
-
 void * HandleEarlyAllocationRequest( size_t sz ){
        if( 0 == mySpace ){
                void * returnAddress = sbrk( sz );
@@ -118,7 +114,6 @@ void * HandleEarlyAllocationRequest( size_t sz ){
 }
 
 /** The fact that I am not expecting more than a handful requests is implicit in my not using a binary search here*/
-
 bool DontFree( void * ptr ){
        if( howManyFreed == nextRequest ) return false; //a minor optimization to reduce the number of instructions executed on each free call....
        if( NULL == ptr ) return true;
@@ -132,7 +127,6 @@ bool DontFree( void * ptr ){
 }
 
 /** Snapshotting malloc implementation for user programs. */
-
 void *malloc( size_t size ) {
        void * earlyReq = HandleEarlyAllocationRequest( size );
        if( earlyReq ) return earlyReq;
@@ -140,20 +134,17 @@ void *malloc( size_t 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 ){
        void * earlyReq = HandleEarlyAllocationRequest( size * num );
        if( earlyReq ) {
@@ -163,28 +154,22 @@ void * calloc( size_t num, size_t size ){
        return mspace_calloc( mySpace, num, size );
 }
 
-
 /** 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);
 }
 
 /** 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, size_t size) {
        free(p);
 }