From 2462c395788348d3c036154d9f8500096804fe29 Mon Sep 17 00:00:00 2001 From: Brian Norris Date: Mon, 8 Oct 2012 13:26:57 -0700 Subject: [PATCH] mymemory: implement snapshot_*() allocations on model-checker's heap --- mymemory.cc | 18 +++++++++++++++--- mymemory.h | 1 + 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/mymemory.cc b/mymemory.cc index 387d6de..08bd4e4 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 b224206..d7c4f99 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. -- 2.34.1