From: Brian Norris Date: Mon, 8 Oct 2012 20:26:57 +0000 (-0700) Subject: mymemory: implement snapshot_*() allocations on model-checker's heap X-Git-Url: http://plrg.eecs.uci.edu/git/?p=c11tester.git;a=commitdiff_plain;h=2462c395788348d3c036154d9f8500096804fe29;hp=b5000a06086de6ea8799168d463f018cab785830 mymemory: implement snapshot_*() allocations on model-checker's heap --- diff --git a/mymemory.cc b/mymemory.cc index 387d6de0..08bd4e43 100644 --- a/mymemory.cc +++ b/mymemory.cc @@ -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. */ diff --git a/mymemory.h b/mymemory.h index b2242062..d7c4f995 100644 --- a/mymemory.h +++ b/mymemory.h @@ -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.