projects
/
cdsspec-compiler.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
b5000a0
)
mymemory: implement snapshot_*() allocations on model-checker's heap
author
Brian Norris
<banorris@uci.edu>
Mon, 8 Oct 2012 20:26:57 +0000
(13:26 -0700)
committer
Brian Norris
<banorris@uci.edu>
Mon, 8 Oct 2012 20:29:43 +0000
(13:29 -0700)
mymemory.cc
patch
|
blob
|
history
mymemory.h
patch
|
blob
|
history
diff --git
a/mymemory.cc
b/mymemory.cc
index 387d6de02365803b8dd33675539918b8d825ebbc..08bd4e437c897967830d5dc760d0d4f27f351b50 100644
(file)
--- 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)
{
/** @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)
{
}
/** @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)
{
}
/** @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. */
}
/** Non-snapshotting free for our use. */
diff --git
a/mymemory.h
b/mymemory.h
index b2242062dd765ee44f1ec1d945f8d235073aec52..d7c4f99599ac785f9abdb9845c00bc563db0b747 100644
(file)
--- 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_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.
void snapshot_free(void *ptr);
/** @brief Provides a non-snapshotting allocator for use in STL classes.