From: Brian Demsky Date: Sat, 19 May 2012 00:22:53 +0000 (-0700) Subject: get rid of redundant mallocs X-Git-Url: http://plrg.eecs.uci.edu/git/?p=c11tester.git;a=commitdiff_plain;h=5f6fdf806a3389a8318011023ccc6f45389624af get rid of redundant mallocs --- diff --git a/Makefile b/Makefile index 3129a8e4..fcd7b5c3 100644 --- a/Makefile +++ b/Makefile @@ -10,8 +10,8 @@ LIB_MEM_SO=lib$(LIB_MEM).so USER_O=userprog.o USER_H=libthreads.h libatomic.h -MODEL_CC=libthreads.cc schedule.cc libatomic.cc model.cc threads.cc tree.cc librace.cc action.cc nodestack.cc clockvector.cc main.cc snapshot-interface.cc mallocwrap.cc -MODEL_O=libthreads.o schedule.o libatomic.o model.o threads.o tree.o librace.o action.o nodestack.o clockvector.o main.o snapshot-interface.o mallocwrap.o +MODEL_CC=libthreads.cc schedule.cc libatomic.cc model.cc threads.cc tree.cc librace.cc action.cc nodestack.cc clockvector.cc main.cc snapshot-interface.cc +MODEL_O=libthreads.o schedule.o libatomic.o model.o threads.o tree.o librace.o action.o nodestack.o clockvector.o main.o snapshot-interface.o MODEL_H=libthreads.h schedule.h common.h libatomic.h model.h threads.h tree.h librace.h action.h nodestack.h clockvector.h snapshot-interface.h SHMEM_CC=snapshot.cc malloc.c mymemory.cc diff --git a/clockvector.cc b/clockvector.cc index 15e65909..da459d0e 100644 --- a/clockvector.cc +++ b/clockvector.cc @@ -11,7 +11,7 @@ ClockVector::ClockVector(ClockVector *parent, ModelAction *act) num_threads = parent ? parent->num_threads : 1; if (act && act->get_type() == THREAD_CREATE) num_threads++; - clock = (int *)myMalloc(num_threads * sizeof(int)); + clock = (int *)MYMALLOC(num_threads * sizeof(int)); if (parent) std::memcpy(clock, parent->clock, parent->num_threads * sizeof(int)); else @@ -23,7 +23,7 @@ ClockVector::ClockVector(ClockVector *parent, ModelAction *act) ClockVector::~ClockVector() { - myFree(clock); + MYFREE(clock); } void ClockVector::merge(ClockVector *cv) @@ -35,7 +35,7 @@ void ClockVector::merge(ClockVector *cv) if (cv->num_threads > num_threads) { resize = true; - clk = (int *)myMalloc(cv->num_threads * sizeof(int)); + clk = (int *)MYMALLOC(cv->num_threads * sizeof(int)); } /* Element-wise maximum */ @@ -46,7 +46,7 @@ void ClockVector::merge(ClockVector *cv) for (int i = num_threads; i < cv->num_threads; i++) clk[i] = cv->clock[i]; num_threads = cv->num_threads; - myFree(clock); + MYFREE(clock); } clock = clk; } diff --git a/common.h b/common.h index 088ef2da..81facf69 100644 --- a/common.h +++ b/common.h @@ -3,6 +3,7 @@ #include #include +#include "mymemory.h" #define CONFIG_DEBUG @@ -25,9 +26,6 @@ do { \ } while (0); -void * myMalloc(size_t size); -void myFree(void *ptr); - #define userMalloc(size) malloc(size) #define userFree(ptr) free(ptr) diff --git a/mallocwrap.cc b/mallocwrap.cc deleted file mode 100644 index 689fb6a5..00000000 --- a/mallocwrap.cc +++ /dev/null @@ -1,46 +0,0 @@ -#include "common.h" - -/* for RTLD_NEXT */ -#ifndef __USE_GNU -#define __USE_GNU -#endif - -#include -#include - -static void * (*real_malloc)(size_t) = NULL; -static void (*real_free)(void *ptr) = NULL; - -static void __my_alloc_init(void) { - real_malloc = (void *(*)(size_t))dlsym(RTLD_NEXT, "malloc"); - real_free = (void (*)(void *))dlsym(RTLD_NEXT, "free"); - if (real_malloc == NULL || real_free == NULL) { - fprintf(stderr, "Error in `dlsym`: %s\n", dlerror()); - return; - } -} - -void * myMalloc(size_t size) { - if (real_malloc == NULL) - __my_alloc_init(); - - return real_malloc(size); -} - -void myFree(void *ptr) -{ - if (real_free == NULL) - __my_alloc_init(); - - real_free(ptr); -} - -void * operator new(size_t size) throw(std::bad_alloc) -{ - return myMalloc(size); -} - -void operator delete(void *p) throw() -{ - myFree(p); -}