X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=mymemory.cc;h=44985fa3aebc0d3fc32f97c0606b3c7ef11154a8;hb=3f77119600ac3aa246258dec2776056d09f8e4e0;hp=08bd4e437c897967830d5dc760d0d4f27f351b50;hpb=2462c395788348d3c036154d9f8500096804fe29;p=model-checker.git diff --git a/mymemory.cc b/mymemory.cc index 08bd4e4..44985fa 100644 --- a/mymemory.cc +++ b/mymemory.cc @@ -1,13 +1,17 @@ -#include "mymemory.h" -#include "snapshot.h" -#include "snapshotimp.h" +#include #include #include #include -#include +#include +#include + +#include "mymemory.h" +#include "snapshot.h" #include "common.h" + #define REQUESTS_BEFORE_ALLOC 1024 -size_t allocatedReqs[ REQUESTS_BEFORE_ALLOC ] = { 0 }; + +size_t allocatedReqs[REQUESTS_BEFORE_ALLOC] = { 0 }; int nextRequest = 0; int howManyFreed = 0; #if !USE_MPROTECT_SNAPSHOT @@ -33,11 +37,8 @@ void *model_calloc(size_t count, size_t size) ptr = callocp(count, size); return ptr; #else - if (!snapshotrecord) { - createSharedMemory(); - } - if (NULL == sStaticSpace) - sStaticSpace = create_mspace_with_base(( void *)( snapshotrecord->mSharedMemoryBase), SHARED_MEMORY_DEFAULT -sizeof(struct SnapShot), 1); + if (!sStaticSpace) + sStaticSpace = create_shared_mspace(); return mspace_calloc(sStaticSpace, count, size); #endif } @@ -61,11 +62,8 @@ void *model_malloc(size_t size) ptr = mallocp(size); return ptr; #else - if (!snapshotrecord) { - createSharedMemory(); - } - if (NULL == sStaticSpace) - sStaticSpace = create_mspace_with_base(( void *)( snapshotrecord->mSharedMemoryBase), SHARED_MEMORY_DEFAULT -sizeof(struct SnapShot), 1); + if (!sStaticSpace) + sStaticSpace = create_shared_mspace(); return mspace_malloc(sStaticSpace, size); #endif } @@ -109,7 +107,7 @@ void model_free(void *ptr) /* get address of libc free */ if (!freep) { - freep = ( void ( * )( void *))dlsym(RTLD_NEXT, "free"); + freep = (void (*)(void *))dlsym(RTLD_NEXT, "free"); if ((error = dlerror()) != NULL) { fputs(error, stderr); exit(EXIT_FAILURE); @@ -121,9 +119,8 @@ void model_free(void *ptr) #endif } -/** Bootstrap allocation. Problem is that the dynamic linker calls - * require calloc to work and calloc requires the dynamic linker to - * work. */ +/** Bootstrap allocation. Problem is that the dynamic linker calls require + * calloc to work and calloc requires the dynamic linker to work. */ #define BOOTSTRAPBYTES 4096 char bootstrapmemory[BOOTSTRAPBYTES]; @@ -135,11 +132,11 @@ void * HandleEarlyAllocationRequest(size_t sz) sz = (sz + 7) & ~7; if (sz > (BOOTSTRAPBYTES-offset)) { - printf("OUT OF BOOTSTRAP MEMORY\n"); + model_print("OUT OF BOOTSTRAP MEMORY\n"); exit(EXIT_FAILURE); } - void *pointer= (void *)&bootstrapmemory[offset]; + void *pointer = (void *)&bootstrapmemory[offset]; offset += sz; return pointer; } @@ -149,9 +146,7 @@ mspace model_snapshot_space = NULL; #if USE_MPROTECT_SNAPSHOT -/** @brief Global mspace reference for the user's snapshotting heap - * @todo use this ONLY for user's allocations, not for internal snapshotting - * state */ +/** @brief Global mspace reference for the user's snapshotting heap */ mspace user_snapshot_space = NULL; /** Check whether this is bootstrapped memory that we should not free */ @@ -195,7 +190,7 @@ void * calloc(size_t num, size_t size) return tmp; } else { void *tmp = HandleEarlyAllocationRequest(size * num); - std::memset(tmp, 0, size * num); + memset(tmp, 0, size * num); return tmp; } }