-#define SNAPSHOTALLOC
-
-void *MYMALLOC(size_t size);
-void *MYCALLOC(size_t count, size_t size);
-void MYFREE(void *ptr);
-
-static inline void * snapshot_malloc(size_t size) {
- return malloc(size);
-}
-static inline void * snapshot_calloc(size_t count, size_t size) {
- return calloc(count, size);
-}
-static inline void snapshot_free(void *ptr) {
- free(ptr);
-}
+#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 * snapshot_malloc(size_t size);
+void * snapshot_calloc(size_t count, size_t size);
+void snapshot_free(void *ptr);