3 #include "snapshotimp.h"
7 static mspace sStaticSpace = NULL;
10 void *MYMALLOC(size_t size) {
12 static void *(*mallocp)(size_t size);
16 /* get address of libc malloc */
18 mallocp = ( void * ( * )( size_t ) )dlsym(RTLD_NEXT, "malloc");
19 if ((error = dlerror()) != NULL) {
28 createSharedLibrary();
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 );
36 void MYFREE(void *ptr) {
38 static void (*freep)(void *);
41 /* get address of libc free */
43 freep = ( void ( * )( void * ) )dlsym(RTLD_NEXT, "free");
44 if ((error = dlerror()) != NULL) {
51 mspace_free( sStaticSpace, ptr );
54 mspace mySpace = NULL;
55 void *malloc( size_t size ) {
56 return mspace_malloc( mySpace, size );
59 void free( void * ptr ){
60 mspace_free( mySpace, ptr );
63 void * operator new(size_t size) throw(std::bad_alloc) {
64 return MYMALLOC(size);
67 void operator delete(void *p) throw() {