X-Git-Url: http://plrg.eecs.uci.edu/git/?p=cdsspec-compiler.git;a=blobdiff_plain;f=mymemory.h;h=a62ab83b9ce5cbcd82999bc9463b2949ba7a0394;hp=a2a9096dcded46bc8a955269d4468084cea059df;hb=c123ef2c7d98d23474d2d2b121b56b502d75665b;hpb=4ee37711afd0de98bc757ed4853a81d66a6a1533 diff --git a/mymemory.h b/mymemory.h index a2a9096..a62ab83 100644 --- a/mymemory.h +++ b/mymemory.h @@ -4,8 +4,8 @@ #ifndef _MY_MEMORY_H #define _MY_MEMORY_H -#include #include +#include #include "config.h" @@ -23,6 +23,9 @@ } \ void operator delete[](void *p, size_t size) { \ model_free(p); \ + } \ + void * operator new(size_t size, void *p) { /* placement new */ \ + return p; \ } /** SNAPSHOTALLOC declares the allocators for a class to allocate @@ -39,6 +42,9 @@ } \ void operator delete[](void *p, size_t size) { \ snapshot_free(p); \ + } \ + void * operator new(size_t size, void *p) { /* placement new */ \ + return p; \ } void *model_malloc(size_t size); @@ -50,6 +56,9 @@ void * snapshot_calloc(size_t count, size_t size); void * snapshot_realloc(void *ptr, size_t size); void snapshot_free(void *ptr); +void * Thread_malloc(size_t size); +void Thread_free(void *ptr); + /** @brief Provides a non-snapshotting allocator for use in STL classes. * * The code was adapted from a code example from the book The C++ @@ -237,19 +246,19 @@ bool operator!= (const SnapshotAlloc&, #ifdef __cplusplus extern "C" { #endif -typedef void * mspace; -extern void* mspace_malloc(mspace msp, size_t bytes); -extern void mspace_free(mspace msp, void* mem); -extern void* mspace_realloc(mspace msp, void* mem, size_t newsize); -extern void* mspace_calloc(mspace msp, size_t n_elements, size_t elem_size); -extern mspace create_mspace_with_base(void* base, size_t capacity, int locked); -extern mspace create_mspace(size_t capacity, int locked); + typedef void * mspace; + extern void * mspace_malloc(mspace msp, size_t bytes); + extern void mspace_free(mspace msp, void* mem); + extern void * mspace_realloc(mspace msp, void* mem, size_t newsize); + extern void * mspace_calloc(mspace msp, size_t n_elements, size_t elem_size); + extern mspace create_mspace_with_base(void* base, size_t capacity, int locked); + extern mspace create_mspace(size_t capacity, int locked); #if USE_MPROTECT_SNAPSHOT -extern mspace user_snapshot_space; + extern mspace user_snapshot_space; #endif -extern mspace model_snapshot_space; + extern mspace model_snapshot_space; #ifdef __cplusplus }; /* end of extern "C" */