From b5f291a286dc3084e91889db196fa6e1f69fc4b8 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Thu, 26 Nov 2020 09:22:37 +0100 Subject: [PATCH] std::array... --- src/mc/ModelChecker.cpp | 5 +++-- src/mc/remote/AppSide.cpp | 4 ++-- src/mc/remote/mc_protocol.h | 7 ++++--- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/mc/ModelChecker.cpp b/src/mc/ModelChecker.cpp index 93400edaf8..e5c642f89f 100644 --- a/src/mc/ModelChecker.cpp +++ b/src/mc/ModelChecker.cpp @@ -208,14 +208,15 @@ bool ModelChecker::handle_message(const char* buffer, ssize_t size) xbt_assert(size == sizeof(message), "Broken message"); memcpy(&message, buffer, sizeof(message)); xbt_assert(not message.callback, "Support for client-side function proposition is not implemented."); - XBT_DEBUG("Received symbol: %s", message.name); + XBT_DEBUG("Received symbol: %s", message.name.data()); if (property_automaton == nullptr) property_automaton = xbt_automaton_new(); const RemoteSimulation* process = &this->get_remote_simulation(); RemotePtr address = remote((int*)message.data); - xbt::add_proposition(property_automaton, message.name, [process, address]() { return process->read(address); }); + xbt::add_proposition(property_automaton, message.name.data(), + [process, address]() { return process->read(address); }); break; } diff --git a/src/mc/remote/AppSide.cpp b/src/mc/remote/AppSide.cpp index 829a2c7276..5dfd6fd9c0 100644 --- a/src/mc/remote/AppSide.cpp +++ b/src/mc/remote/AppSide.cpp @@ -208,9 +208,9 @@ void AppSide::declare_symbol(const char* name, int* value) const { s_mc_message_register_symbol_t message; message.type = MessageType::REGISTER_SYMBOL; - if (strlen(name) + 1 > sizeof(message.name)) + if (strlen(name) + 1 > message.name.size()) xbt_die("Symbol is too long"); - strncpy(message.name, name, sizeof(message.name)); + strncpy(message.name.data(), name, message.name.size()); message.callback = nullptr; message.data = value; if (channel_.send(message)) diff --git a/src/mc/remote/mc_protocol.h b/src/mc/remote/mc_protocol.h index e620fc60a9..6afc2a0a35 100644 --- a/src/mc/remote/mc_protocol.h +++ b/src/mc/remote/mc_protocol.h @@ -16,9 +16,10 @@ #ifdef __cplusplus -#include "cstdint" #include "mc/datatypes.h" #include "simgrid/forward.h" // aid_t +#include +#include // ***** Messages namespace simgrid { @@ -44,7 +45,7 @@ enum class MessageType { } // namespace mc } // namespace simgrid -#define MC_MESSAGE_LENGTH 512 +constexpr unsigned MC_MESSAGE_LENGTH = 512; /** Basic structure for a MC message * @@ -88,7 +89,7 @@ struct s_mc_message_stack_region_t { struct s_mc_message_register_symbol_t { simgrid::mc::MessageType type; - char name[128]; + std::array name; int (*callback)(void*); void* data; }; -- 2.20.1