X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=mymemory.h;h=14b945ab755f1c9f038dd741ca7990a9ade118ea;hb=1c3a286b9bf208163f478abaf2fe5b44d21d9823;hp=f2a31865ba85a9272794514de14e3179bb2da01e;hpb=f3f31f82a34dbd625942cbfe13528e91ff64ed4c;p=c11tester.git diff --git a/mymemory.h b/mymemory.h index f2a31865..14b945ab 100644 --- a/mymemory.h +++ b/mymemory.h @@ -24,7 +24,7 @@ void operator delete[](void *p, size_t size) { \ model_free(p); \ } \ - void * operator new(size_t size, void *p) { /* placement new */ \ + void * operator new(size_t size, void *p) { /* placement new */ \ return p; \ } @@ -43,7 +43,7 @@ void operator delete[](void *p, size_t size) { \ snapshot_free(p); \ } \ - void * operator new(size_t size, void *p) { /* placement new */ \ + void * operator new(size_t size, void *p) { /* placement new */ \ return p; \ } @@ -56,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++ @@ -68,15 +71,15 @@ void snapshot_free(void *ptr); */ template class ModelAlloc { - public: +public: // type definitions - typedef T value_type; + typedef T value_type; typedef T* pointer; typedef const T* const_pointer; typedef T& reference; typedef const T& const_reference; - typedef size_t size_type; - typedef size_t difference_type; + typedef size_t size_type; + typedef size_t difference_type; // rebind allocator to type U template @@ -137,14 +140,14 @@ class ModelAlloc { /** Return that all specializations of this allocator are interchangeable. */ template bool operator ==(const ModelAlloc&, - const ModelAlloc&) throw() { + const ModelAlloc&) throw() { return true; } /** Return that all specializations of this allocator are interchangeable. */ template bool operator!= (const ModelAlloc&, - const ModelAlloc&) throw() { + const ModelAlloc&) throw() { return false; } @@ -160,15 +163,15 @@ bool operator!= (const ModelAlloc&, */ template class SnapshotAlloc { - public: +public: // type definitions - typedef T value_type; + typedef T value_type; typedef T* pointer; typedef const T* const_pointer; typedef T& reference; typedef const T& const_reference; - typedef size_t size_type; - typedef size_t difference_type; + typedef size_t size_type; + typedef size_t difference_type; // rebind allocator to type U template @@ -229,36 +232,36 @@ class SnapshotAlloc { /** Return that all specializations of this allocator are interchangeable. */ template bool operator ==(const SnapshotAlloc&, - const SnapshotAlloc&) throw() { + const SnapshotAlloc&) throw() { return true; } /** Return that all specializations of this allocator are interchangeable. */ template bool operator!= (const SnapshotAlloc&, - const SnapshotAlloc&) throw() { + const SnapshotAlloc&) throw() { return false; } #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" */ +}; /* end of extern "C" */ #endif -#endif /* _MY_MEMORY_H */ +#endif /* _MY_MEMORY_H */