From e90b866cde6c4fabed08e78753b9d5c6bdce15a0 Mon Sep 17 00:00:00 2001 From: Gabriel Corona Date: Thu, 3 Mar 2016 18:01:46 +0100 Subject: [PATCH] [mc] Remove the horrid temporary MC_PROCESS_FOREACH() macro --- src/mc/Process.hpp | 6 ------ src/mc/mc_base.cpp | 10 +++------- src/mc/mc_smx.cpp | 30 ++++++++++++------------------ 3 files changed, 15 insertions(+), 31 deletions(-) diff --git a/src/mc/Process.hpp b/src/mc/Process.hpp index 5f2ba9a952..d8a3af5083 100644 --- a/src/mc/Process.hpp +++ b/src/mc/Process.hpp @@ -302,12 +302,6 @@ public: // Libunwind-data void* unw_underlying_context; }; -// TODO, remove this -#define MC_PROCESS_FOREACH(xs, cursor, p) \ - if (! xs.empty()) \ - for (auto __it = (cursor = 0, p = &*xs.begin(), xs.begin()); \ - __it != xs.end(); ++__it, ++cursor, p = &*__it) - /** Open a FD to a remote process memory (`/dev/$pid/mem`) */ XBT_PRIVATE int open_vm(pid_t pid, int flags); diff --git a/src/mc/mc_base.cpp b/src/mc/mc_base.cpp index 82da31fbf2..ceed72a590 100644 --- a/src/mc/mc_base.cpp +++ b/src/mc/mc_base.cpp @@ -227,16 +227,12 @@ void MC_simcall_handle(smx_simcall_t req, int value) return; } - unsigned i; - mc_smx_process_info_t pi = nullptr; - - MC_PROCESS_FOREACH(mc_model_checker->process().smx_process_infos, i, pi) { - if (req == &pi->copy.simcall) { + for (auto& pi : mc_model_checker->process().smx_process_infos) + if (req == &pi.copy.simcall) { mc_model_checker->simcall_handle( - mc_model_checker->process(), pi->copy.pid, value); + mc_model_checker->process(), pi.copy.pid, value); return; } - } xbt_die("Could not find the request"); #endif diff --git a/src/mc/mc_smx.cpp b/src/mc/mc_smx.cpp index 868ea757f0..900e372c54 100644 --- a/src/mc/mc_smx.cpp +++ b/src/mc/mc_smx.cpp @@ -115,16 +115,13 @@ smx_process_t MC_smx_simcall_get_issuer(smx_simcall_t req) // This is the address of the smx_process in the MCed process: void* address = req->issuer; - unsigned i; - mc_smx_process_info_t p; - // Lookup by address: - MC_PROCESS_FOREACH(mc_model_checker->process().smx_process_infos, i, p) - if (p->address == address) - return &p->copy; - MC_PROCESS_FOREACH(mc_model_checker->process().smx_old_process_infos, i, p) - if (p->address == address) - return &p->copy; + for (auto& p : mc_model_checker->process().smx_process_infos) + if (p.address == address) + return &p.copy; + for (auto& p : mc_model_checker->process().smx_old_process_infos) + if (p.address == address) + return &p.copy; xbt_die("Issuer not found"); } @@ -147,15 +144,12 @@ mc_smx_process_info_t MC_smx_resolve_process_info(smx_process_t process_remote_a { if (mc_mode == MC_MODE_CLIENT) xbt_die("No process_info for local process is not enabled."); - - unsigned index; - mc_smx_process_info_t process_info; - MC_PROCESS_FOREACH(mc_model_checker->process().smx_process_infos, index, process_info) - if (process_info->address == process_remote_address) - return process_info; - MC_PROCESS_FOREACH(mc_model_checker->process().smx_old_process_infos, index, process_info) - if (process_info->address == process_remote_address) - return process_info; + for (auto& process_info : mc_model_checker->process().smx_process_infos) + if (process_info.address == process_remote_address) + return &process_info; + for (auto& process_info : mc_model_checker->process().smx_old_process_infos) + if (process_info.address == process_remote_address) + return &process_info; xbt_die("Process info not found"); } -- 2.20.1