From 02873e73c7c1ef478c3b5a847cce3ed8d5a8841b Mon Sep 17 00:00:00 2001 From: bdemsky Date: Wed, 20 Nov 2019 11:56:43 -0800 Subject: [PATCH] bug fix --- datarace.cc | 2 +- mymemory.cc | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/datarace.cc b/datarace.cc index be0fc3b6..76fbe936 100644 --- a/datarace.cc +++ b/datarace.cc @@ -676,7 +676,7 @@ void atomraceCheckRead(thread_id_t thread, const void *location) goto Exit; } - if (shadowval && ATOMICMASK) + if (shadowval & ATOMICMASK) return; { diff --git a/mymemory.cc b/mymemory.cc index 5185cd0f..f78e82d5 100644 --- a/mymemory.cc +++ b/mymemory.cc @@ -205,12 +205,15 @@ static void * user_malloc(size_t size) */ void *malloc(size_t size) { + void *tmp; if (user_snapshot_space) { /* Only perform user allocations from user context */ ASSERT(!model || thread_current()); - return user_malloc(size); + tmp = user_malloc(size); } else - return HandleEarlyAllocationRequest(size); + tmp = HandleEarlyAllocationRequest(size); + recordCalloc(tmp, size); + return tmp; } /** @brief Snapshotting free implementation for user programs */ @@ -225,6 +228,7 @@ void free(void * ptr) void *realloc(void *ptr, size_t size) { void *tmp = mspace_realloc(user_snapshot_space, ptr, size); + recordCalloc(tmp, size); ASSERT(tmp); return tmp; } @@ -235,12 +239,12 @@ void * calloc(size_t num, size_t size) if (user_snapshot_space) { void *tmp = mspace_calloc(user_snapshot_space, num, size); ASSERT(tmp); - recordCalloc(tmp, num*size); + recordAlloc(tmp, num*size); return tmp; } else { void *tmp = HandleEarlyAllocationRequest(size * num); memset(tmp, 0, size * num); - recordCalloc(tmp, num*size); + recordAlloc(tmp, num*size); return tmp; } } -- 2.34.1