X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/70fa17187e0b928ff89cb8663426edbf6b74601a..67d8461e1530fcf03ba924c15a97eba2550d78e0:/src/simix/popping_private.hpp diff --git a/src/simix/popping_private.hpp b/src/simix/popping_private.hpp index d6c0a5c354..b7d4b5fa9e 100644 --- a/src/simix/popping_private.hpp +++ b/src/simix/popping_private.hpp @@ -52,8 +52,8 @@ struct s_smx_simcall { smx_actor_t issuer; smx_timer_t timer; int mc_value; - union u_smx_scalar args[11]; - union u_smx_scalar result; + u_smx_scalar args[11]; + u_smx_scalar result; }; #define SIMCALL_SET_MC_VALUE(simcall, value) ((simcall)->mc_value = (value)) @@ -143,8 +143,8 @@ inline void marshal(type>, u_smx_scalar& simcall, boost: if (value.get() == nullptr) { // Sometimes we return nullptr in an intrusive_ptr... simcall.dp = nullptr; } else { - intrusive_ptr_add_ref(&*value); - simcall.dp = static_cast(&*value); + intrusive_ptr_add_ref(value.get()); + simcall.dp = static_cast(value.get()); } } template inline boost::intrusive_ptr unmarshal(type>, u_smx_scalar const& simcall) @@ -186,6 +186,7 @@ template inline typename std::remove_reference::type unmarshal_raw( template inline void marshalArgs(smx_simcall_t simcall) { + /* Nothing to do when no args */ } template inline void marshalArgs(smx_simcall_t simcall, A const& a)