From dcd90fb28d7fa6c69fed9ef7bab98a33db258adb Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Wed, 25 Nov 2020 16:09:07 +0100 Subject: [PATCH] Once again, use sd::array instead of C-style arrays. --- src/mc/ModelChecker.cpp | 7 ++++--- src/mc/Session.cpp | 7 ++++--- src/mc/mc_global.cpp | 5 +++-- src/mc/remote/AppSide.cpp | 10 +++++----- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/mc/ModelChecker.cpp b/src/mc/ModelChecker.cpp index 30e20e665a..f461691c10 100644 --- a/src/mc/ModelChecker.cpp +++ b/src/mc/ModelChecker.cpp @@ -14,6 +14,7 @@ #include "xbt/automaton.hpp" #include "xbt/system_error.hpp" +#include #include #include @@ -42,12 +43,12 @@ void ModelChecker::start() checker_side_.start([](evutil_socket_t sig, short events, void* arg) { auto mc = static_cast(arg); if (events == EV_READ) { - char buffer[MC_MESSAGE_LENGTH]; - ssize_t size = mc->checker_side_.get_channel().receive(buffer, sizeof(buffer), false); + std::array buffer; + ssize_t size = mc->checker_side_.get_channel().receive(buffer.data(), buffer.size(), false); if (size == -1 && errno != EAGAIN) throw simgrid::xbt::errno_error(); - if (not mc->handle_message(buffer, size)) + if (not mc->handle_message(buffer.data(), size)) mc->checker_side_.break_loop(); } else if (events == EV_SIGNAL) { if (sig == SIGCHLD) diff --git a/src/mc/Session.cpp b/src/mc/Session.cpp index f8d8819460..fc286bdb93 100644 --- a/src/mc/Session.cpp +++ b/src/mc/Session.cpp @@ -15,6 +15,7 @@ #include "xbt/log.h" #include "xbt/system_error.hpp" +#include #include #include @@ -145,10 +146,10 @@ bool Session::actor_is_enabled(aid_t pid) const { s_mc_message_actor_enabled_t msg{MC_MESSAGE_ACTOR_ENABLED, pid}; model_checker_->channel().send(msg); - char buff[MC_MESSAGE_LENGTH]; - ssize_t received = model_checker_->channel().receive(buff, MC_MESSAGE_LENGTH, true); + std::array buff; + ssize_t received = model_checker_->channel().receive(buff.data(), buff.size(), true); xbt_assert(received == sizeof(s_mc_message_int_t), "Unexpected size in answer to ACTOR_ENABLED"); - return ((s_mc_message_int_t*)buff)->value; + return ((s_mc_message_int_t*)buff.data())->value; } simgrid::mc::Session* session; diff --git a/src/mc/mc_global.cpp b/src/mc/mc_global.cpp index 219b913445..e5107d9e57 100644 --- a/src/mc/mc_global.cpp +++ b/src/mc/mc_global.cpp @@ -20,6 +20,7 @@ #include "src/mc/sosp/Snapshot.hpp" #include "xbt/backtrace.hpp" +#include #include #endif @@ -108,11 +109,11 @@ namespace mc { void dumpStack(FILE* file, unw_cursor_t* cursor) { int nframe = 0; - char buffer[100]; + std::array buffer; unw_word_t off; do { - const char* name = not unw_get_proc_name(cursor, buffer, 100, &off) ? buffer : "?"; + const char* name = not unw_get_proc_name(cursor, buffer.data(), buffer.size(), &off) ? buffer.data() : "?"; // Unmangle C++ names: auto realname = simgrid::xbt::demangle(name); diff --git a/src/mc/remote/AppSide.cpp b/src/mc/remote/AppSide.cpp index 6e08bdfa3d..9a72d04aab 100644 --- a/src/mc/remote/AppSide.cpp +++ b/src/mc/remote/AppSide.cpp @@ -112,12 +112,12 @@ void AppSide::handle_messages() const while (true) { XBT_DEBUG("Waiting messages from model-checker"); - char message_buffer[MC_MESSAGE_LENGTH]; - ssize_t received_size = channel_.receive(&message_buffer, sizeof(message_buffer)); + std::array message_buffer; + ssize_t received_size = channel_.receive(message_buffer.data(), message_buffer.size()); xbt_assert(received_size >= 0, "Could not receive commands from the model-checker"); - const s_mc_message_t* message = (s_mc_message_t*)message_buffer; + const s_mc_message_t* message = (s_mc_message_t*)message_buffer.data(); switch (message->type) { case MC_MESSAGE_DEADLOCK_CHECK: assert_msg_size("DEADLOCK_CHECK", s_mc_message_t); @@ -131,12 +131,12 @@ void AppSide::handle_messages() const case MC_MESSAGE_SIMCALL_HANDLE: assert_msg_size("SIMCALL_HANDLE", s_mc_message_simcall_handle_t); - handle_simcall((s_mc_message_simcall_handle_t*)message_buffer); + handle_simcall((s_mc_message_simcall_handle_t*)message_buffer.data()); break; case MC_MESSAGE_ACTOR_ENABLED: assert_msg_size("ACTOR_ENABLED", s_mc_message_actor_enabled_t); - handle_actor_enabled((s_mc_message_actor_enabled_t*)message_buffer); + handle_actor_enabled((s_mc_message_actor_enabled_t*)message_buffer.data()); break; default: -- 2.20.1