rename 'MyAlloc' to 'ModelAlloc'
[model-checker.git] / mymemory.h
index fb6df12cd6791e85b1553d3c51da3ba89e67e2e2..47a7ae0b6974a75327fba5d00e7a4ef3b1669af1 100644 (file)
  *     memory in the non-snapshotting heap. */
 #define MEMALLOC \
        void * operator new(size_t size) { \
-               return MYMALLOC(size);\
-       }\
+               return model_malloc(size); \
+       } \
        void operator delete(void *p, size_t size) { \
-               MYFREE( p ); \
-       }\
+               model_free(p); \
+       } \
        void * operator new[](size_t size) { \
-               return MYMALLOC(size);\
-       }\
-       void operator delete[](void *p, size_t size) {\
-               MYFREE(p);\
+               return model_malloc(size); \
+       } \
+       void operator delete[](void *p, size_t size) { \
+               model_free(p); \
        }
 
 /** SNAPSHOTALLOC declares the allocators for a class to allocate
  *     memory in the snapshotting heap. */
-#define SNAPSHOTALLOC
+#define SNAPSHOTALLOC \
+       void * operator new(size_t size) { \
+               return snapshot_malloc(size); \
+       } \
+       void operator delete(void *p, size_t size) { \
+               snapshot_free(p); \
+       } \
+       void * operator new[](size_t size) { \
+               return snapshot_malloc(size); \
+       } \
+       void operator delete[](void *p, size_t size) { \
+               snapshot_free(p); \
+       }
+
+void *model_malloc(size_t size);
+void *model_calloc(size_t count, size_t size);
+void model_free(void *ptr);
 
-void *MYMALLOC(size_t size);
-void MYFREE(void *ptr);
+void * snapshot_malloc(size_t size);
+void * snapshot_calloc(size_t count, size_t size);
+void snapshot_free(void *ptr);
 
 void system_free( void * ptr );
 void *system_malloc( size_t size );
@@ -44,7 +61,7 @@ void *system_malloc( size_t size );
  * warranty, and with no claim as to its suitability for any purpose.
  */
 template <class T>
-   class MyAlloc {
+   class ModelAlloc {
      public:
        // type definitions
        typedef T        value_type;
@@ -58,7 +75,7 @@ template <class T>
        // rebind allocator to type U
        template <class U>
        struct rebind {
-           typedef MyAlloc<U> other;
+           typedef ModelAlloc<U> other;
        };
 
        // return address of values
@@ -72,14 +89,14 @@ template <class T>
        /* constructors and destructor
         * - nothing to do because the allocator has no state
         */
-       MyAlloc() throw() {
+       ModelAlloc() throw() {
        }
-       MyAlloc(const MyAlloc&) throw() {
+       ModelAlloc(const ModelAlloc&) throw() {
        }
        template <class U>
-         MyAlloc (const MyAlloc<U>&) throw() {
+         ModelAlloc (const ModelAlloc<U>&) throw() {
        }
-       ~MyAlloc() throw() {
+       ~ModelAlloc() throw() {
        }
 
        // return maximum number of elements that can be allocated
@@ -89,7 +106,7 @@ template <class T>
 
        // allocate but don't initialize num elements of type T
        pointer allocate (size_type num, const void* = 0) {
-           pointer p = ( pointer )MYMALLOC( num * sizeof( T ) );
+           pointer p = ( pointer )model_malloc( num * sizeof( T ) );
            return p;
        }
 
@@ -107,21 +124,21 @@ template <class T>
 
        // deallocate storage p of deleted elements
        void deallocate (pointer p, size_type num) {
-           MYFREE((void*)p);
+           model_free((void*)p);
        }
    };
 
 /** Return that all specializations of this allocator are interchangeable. */
  template <class T1, class T2>
- bool operator== (const MyAlloc<T1>&,
-                  const MyAlloc<T2>&) throw() {
+ bool operator== (const ModelAlloc<T1>&,
+                  const ModelAlloc<T2>&) throw() {
      return true;
  }
 
 /** Return that all specializations of this allocator are interchangeable. */
  template <class T1, class T2>
- bool operator!= (const MyAlloc<T1>&,
-                  const MyAlloc<T2>&) throw() {
+ bool operator!= (const ModelAlloc<T1>&,
+                  const ModelAlloc<T2>&) throw() {
      return false;
  }