remove unused #define
[model-checker.git] / mymemory.cc
1 #include "mymemory.h"
2 #include "snapshot.h"
3 #include "snapshotimp.h"
4 #include <stdio.h>
5 #include <dlfcn.h>
6 #if !USE_CHECKPOINTING
7 static mspace sStaticSpace = NULL;
8 #endif
9
10 void *MYMALLOC(size_t size) {
11 #if USE_CHECKPOINTING
12   static void *(*mallocp)(size_t size);
13   char *error;
14   void *ptr;
15
16   /* get address of libc malloc */
17   if (!mallocp) {
18     mallocp = ( void * ( * )( size_t ) )dlsym(RTLD_NEXT, "malloc");
19     if ((error = dlerror()) != NULL) {
20       fputs(error, stderr);
21       exit(1);
22     }
23   }
24   ptr = mallocp(size);     
25   return ptr;
26 #else
27   if( !sTheRecord ){
28     createSharedLibrary();
29   }
30   if( NULL == sStaticSpace )
31     sStaticSpace = create_mspace_with_base( ( void * )( sTheRecord->mSharedMemoryBase ), SHARED_MEMORY_DEFAULT -sizeof( struct Snapshot_t ), 1 );
32   return mspace_malloc( sStaticSpace, size );
33 #endif
34 }
35
36 void MYFREE(void *ptr) {
37 #if USE_CHECKPOINTING
38   static void (*freep)(void *);
39   char *error;
40
41   /* get address of libc free */
42   if (!freep) {
43     freep = ( void  ( * )( void * ) )dlsym(RTLD_NEXT, "free");
44     if ((error = dlerror()) != NULL) {
45       fputs(error, stderr);
46       exit(1);
47     }
48   }
49   freep(ptr);
50 #else
51   mspace_free( sStaticSpace, ptr );
52 #endif
53 }
54 mspace mySpace = NULL;
55 void *malloc( size_t size ) {
56   return mspace_malloc( mySpace, size );
57 }
58
59 void free( void * ptr ){
60   mspace_free( mySpace, ptr );
61 }
62
63 void * operator new(size_t size) throw(std::bad_alloc) {
64   return MYMALLOC(size);
65 }
66
67 void operator delete(void *p) throw() {
68   MYFREE(p);
69 }