X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=mymemory.h;h=56e690436d1e573da00bf287e6aff2388f476c0c;hb=5d9ce304699f07a7203ca4ceb246b482720c031e;hp=f928797bc30f4aac90b45d25a342ab588cfa6a14;hpb=f7e343245eacef390a0d52ba4f7dac361eb11a51;p=model-checker.git diff --git a/mymemory.h b/mymemory.h index f928797..56e6904 100644 --- a/mymemory.h +++ b/mymemory.h @@ -1,8 +1,15 @@ +/** @file mymemory.h + * @brief Memory allocation functions. + */ + #ifndef _MY_MEMORY_H #define _MY_MEMORY_H #include #include +/** MEMALLOC declares the allocators for a class to allocate + * memory in the non-snapshotting heap. */ + #define MEMALLOC \ void * operator new(size_t size) { \ return MYMALLOC(size);\ @@ -17,7 +24,9 @@ MYFREE(p);\ } -/* Empty define; represents opposite of MEMALLOC */ +/** SNAPSHOTALLOC declares the allocators for a class to allocate + * memory in the snapshotting heap. */ + #define SNAPSHOTALLOC void *MYMALLOC(size_t size); @@ -25,16 +34,18 @@ void MYFREE(void *ptr); void system_free( void * ptr ); void *system_malloc( size_t size ); -/* -The following code example is taken from the book -The C++ Standard Library - A Tutorial and Reference -by Nicolai M. Josuttis, Addison-Wesley, 1999 -© Copyright Nicolai M. Josuttis 1999 -Permission to copy, use, modify, sell and distribute this software -is granted provided this copyright notice appears in all copies. -This software is provided "as is" without express or implied -warranty, and with no claim as to its suitability for any purpose. -*/ + +/** @brief Provides a non-snapshotting allocator for use in STL classes. + * + * The code was adapted from a code example from the book The C++ + * Standard Library - A Tutorial and Reference by Nicolai M. Josuttis, + * Addison-Wesley, 1999 © Copyright Nicolai M. Josuttis 1999 + * Permission to copy, use, modify, sell and distribute this software + * is granted provided this copyright notice appears in all copies. + * This software is provided "as is" without express or implied + * warranty, and with no claim as to its suitability for any purpose. + */ + template class MyAlloc { public: @@ -103,12 +114,14 @@ template } }; -// return that all specializations of this allocator are interchangeable +/** Return that all specializations of this allocator are interchangeable. */ template bool operator== (const MyAlloc&, const MyAlloc&) throw() { return true; } + +/** Return that all specializations of this allocator are interchangeable. */ template bool operator!= (const MyAlloc&, const MyAlloc&) throw() {