From a2961c433a36e3277d50bd433fbd343e5f9bab74 Mon Sep 17 00:00:00 2001 From: Gabriel Corona Date: Mon, 16 Jun 2014 13:00:15 +0200 Subject: [PATCH] [mc] Simplify s_mc_snapshot_stack Some fields were not used and have been removed: * stack_pointer (SP in the snapshot) * real_address (address of the stack) The first one does not make sense with page-fragmented snapshot. Simplify the computation of snapshot->stack_sizes[cursor]. The old computation did not make sense with page fragmented snapshots. --- src/mc/mc_checkpoint.c | 8 +------- src/mc/mc_private.h | 2 -- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/src/mc/mc_checkpoint.c b/src/mc/mc_checkpoint.c index 08b335234a..9d575f2b2b 100644 --- a/src/mc/mc_checkpoint.c +++ b/src/mc/mc_checkpoint.c @@ -478,18 +478,12 @@ static xbt_dynar_t MC_take_snapshot_stacks(mc_snapshot_t * snapshot, void *heap) st->local_variables = MC_get_local_variables_values(st->stack_frames); unw_word_t sp = xbt_dynar_get_as(st->stack_frames, 0, mc_stack_frame_t)->sp; - st->stack_pointer = - ((char *) heap + (size_t) (((char *) ((long) sp) - (char *) std_heap))); - st->real_address = current_stack->address; xbt_dynar_push(res, &st); (*snapshot)->stack_sizes = xbt_realloc((*snapshot)->stack_sizes, (cursor + 1) * sizeof(size_t)); (*snapshot)->stack_sizes[cursor] = - current_stack->size - ((char *) st->stack_pointer - - (char *) ((char *) heap + - ((char *) current_stack->address - - (char *) std_heap))); + (char*) current_stack->address + current_stack->size - (char*) sp; } return res; diff --git a/src/mc/mc_private.h b/src/mc/mc_private.h index 62a82f5fdd..c8fa6bd4aa 100644 --- a/src/mc/mc_private.h +++ b/src/mc/mc_private.h @@ -87,8 +87,6 @@ typedef struct s_mc_stack_frame { typedef struct s_mc_snapshot_stack{ xbt_dynar_t local_variables; - void *stack_pointer; - void *real_address; xbt_dynar_t stack_frames; // mc_stack_frame_t }s_mc_snapshot_stack_t, *mc_snapshot_stack_t; -- 2.20.1