From 2b4c4cf7533ad4a7405c807132943c6139233cb2 Mon Sep 17 00:00:00 2001 From: Gabriel Corona Date: Mon, 8 Jun 2015 17:54:10 +0200 Subject: [PATCH] [mc] Make s_mc_snapshot_stack::context not a pointer --- src/mc/mc_checkpoint.cpp | 12 ++---------- src/mc/mc_snapshot.h | 28 +++------------------------- src/mc/mc_unw.cpp | 7 ------- src/mc/mc_unw.h | 3 --- 4 files changed, 5 insertions(+), 45 deletions(-) diff --git a/src/mc/mc_checkpoint.cpp b/src/mc/mc_checkpoint.cpp index 3fd0584568..37aa48a756 100644 --- a/src/mc/mc_checkpoint.cpp +++ b/src/mc/mc_checkpoint.cpp @@ -46,13 +46,6 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_checkpoint, mc, /************************************ Free functions **************************************/ /*****************************************************************************************/ -s_mc_snapshot_stack::~s_mc_snapshot_stack() -{ - if (this->context) - mc_unw_destroy_context(this->context); - xbt_free(this->context); -} - static void MC_snapshot_stack_free_voidp(void *s) { mc_snapshot_stack_t stack = (mc_snapshot_stack_t) * (void **) s; @@ -436,12 +429,11 @@ static std::vector MC_take_snapshot_stacks(mc_snapshot_t mc_model_checker->process().read_bytes( &context, sizeof(context), remote(current_stack->context)); - st.context = xbt_new0(s_mc_unw_context_t, 1); - if (mc_unw_init_context(st.context, &mc_model_checker->process(), + if (mc_unw_init_context(&st.context, &mc_model_checker->process(), &context) < 0) { xbt_die("Could not initialise the libunwind context."); } - st.stack_frames = MC_unwind_stack_frames(st.context); + st.stack_frames = MC_unwind_stack_frames(&st.context); st.local_variables = MC_get_local_variables_values(st.stack_frames, current_stack->process_index); st.process_index = current_stack->process_index; diff --git a/src/mc/mc_snapshot.h b/src/mc/mc_snapshot.h index e725c1d246..8d9ce91aa0 100644 --- a/src/mc/mc_snapshot.h +++ b/src/mc/mc_snapshot.h @@ -118,34 +118,12 @@ typedef struct s_local_variable{ int region; } s_local_variable_t, *local_variable_t; -typedef struct s_mc_snapshot_stack{ +typedef struct s_mc_snapshot_stack { std::vector local_variables; - mc_unw_context_t context; + s_mc_unw_context_t context; std::vector stack_frames; int process_index; - - s_mc_snapshot_stack() - : context(nullptr), process_index(0) - {} - ~s_mc_snapshot_stack(); - s_mc_snapshot_stack(s_mc_snapshot_stack& p) = delete; - s_mc_snapshot_stack& operator=(s_mc_snapshot_stack&) = delete; - - s_mc_snapshot_stack(s_mc_snapshot_stack&& that) - { - *this = std::move(that); - } - s_mc_snapshot_stack& operator=(s_mc_snapshot_stack&& that) - { - this->local_variables = std::move(that.local_variables); - this->context = std::move(that.context); - that.context = nullptr; - this->process_index = that.process_index; - that.process_index = 0; - return *this; - } - -}s_mc_snapshot_stack_t, *mc_snapshot_stack_t; +} s_mc_snapshot_stack_t, *mc_snapshot_stack_t; typedef struct s_mc_global_t { mc_snapshot_t snapshot; diff --git a/src/mc/mc_unw.cpp b/src/mc/mc_unw.cpp index f02a89fe3f..c408e2a50f 100644 --- a/src/mc/mc_unw.cpp +++ b/src/mc/mc_unw.cpp @@ -217,13 +217,6 @@ int mc_unw_init_context( return 0; } -int mc_unw_destroy_context(mc_unw_context_t context) -{ - context->address_space = NULL; - context->process = NULL; - return 0; -} - // ***** Cursor management int mc_unw_init_cursor(unw_cursor_t *cursor, mc_unw_context_t context) diff --git a/src/mc/mc_unw.h b/src/mc/mc_unw.h index 8e87c84896..38287f19b4 100644 --- a/src/mc/mc_unw.h +++ b/src/mc/mc_unw.h @@ -69,9 +69,6 @@ typedef struct s_mc_unw_context { XBT_INTERNAL int mc_unw_init_context( mc_unw_context_t context, mc_process_t process, unw_context_t* c); -/** Destroys (but not not `free`) a context */ -XBT_INTERNAL int mc_unw_destroy_context(mc_unw_context_t context); - // ***** Libunwind cursor /** Initialises a `libunwind` cursor */ -- 2.20.1