* 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 );
// 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;
}
// deallocate storage p of deleted elements
void deallocate (pointer p, size_type num) {
- MYFREE((void*)p);
+ model_free((void*)p);
}
};