mymemory: implement snapshot_*() allocations on model-checker's heap
authorBrian Norris <banorris@uci.edu>
Mon, 8 Oct 2012 20:26:57 +0000 (13:26 -0700)
committerBrian Norris <banorris@uci.edu>
Mon, 8 Oct 2012 20:29:43 +0000 (13:29 -0700)
mymemory.cc
mymemory.h

index 387d6de02365803b8dd33675539918b8d825ebbc..08bd4e437c897967830d5dc760d0d4f27f351b50 100644 (file)
@@ -73,19 +73,31 @@ void *model_malloc(size_t size)
 /** @brief Snapshotting malloc, for use by model-checker (not user progs) */
 void * snapshot_malloc(size_t size)
 {
-       return malloc(size);
+       void *tmp = mspace_malloc(model_snapshot_space, size);
+       ASSERT(tmp);
+       return tmp;
 }
 
 /** @brief Snapshotting calloc, for use by model-checker (not user progs) */
 void * snapshot_calloc(size_t count, size_t size)
 {
-       return calloc(count, size);
+       void *tmp = mspace_calloc(model_snapshot_space, count, size);
+       ASSERT(tmp);
+       return tmp;
+}
+
+/** @brief Snapshotting realloc, for use by model-checker (not user progs) */
+void *snapshot_realloc(void *ptr, size_t size)
+{
+       void *tmp = mspace_realloc(model_snapshot_space, ptr, size);
+       ASSERT(tmp);
+       return tmp;
 }
 
 /** @brief Snapshotting free, for use by model-checker (not user progs) */
 void snapshot_free(void *ptr)
 {
-       free(ptr);
+       mspace_free(model_snapshot_space, ptr);
 }
 
 /** Non-snapshotting free for our use. */
index b2242062dd765ee44f1ec1d945f8d235073aec52..d7c4f99599ac785f9abdb9845c00bc563db0b747 100644 (file)
@@ -47,6 +47,7 @@ void model_free(void *ptr);
 
 void * snapshot_malloc(size_t size);
 void * snapshot_calloc(size_t count, size_t size);
+void * snapshot_realloc(void *ptr, size_t size);
 void snapshot_free(void *ptr);
 
 /** @brief Provides a non-snapshotting allocator for use in STL classes.