From: Martin Quinson Date: Thu, 15 Jun 2017 01:13:35 +0000 (+0200) Subject: correctly use clumsy xbt_dynar interface X-Git-Tag: v3.16~91 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/e3dc648bd52d77fd3b8f941c01de483c27ab960c correctly use clumsy xbt_dynar interface How can I be so stupid? --- diff --git a/include/simgrid/s4u/Comm.hpp b/include/simgrid/s4u/Comm.hpp index 8bf6c8f829..697f259089 100644 --- a/include/simgrid/s4u/Comm.hpp +++ b/include/simgrid/s4u/Comm.hpp @@ -32,7 +32,7 @@ public: { // Map to dynar: xbt_dynar_t comms = xbt_dynar_new(sizeof(simgrid::kernel::activity::ActivityImpl*), [](void*ptr){ - intrusive_ptr_release((simgrid::kernel::activity::ActivityImpl*)ptr); + intrusive_ptr_release(*(simgrid::kernel::activity::ActivityImpl**)ptr); }); for (I iter = first; iter != last; iter++) { CommPtr comm = *iter; @@ -59,7 +59,7 @@ public: { // Map to dynar: xbt_dynar_t comms = xbt_dynar_new(sizeof(simgrid::kernel::activity::ActivityImpl*), [](void*ptr){ - intrusive_ptr_release((simgrid::kernel::activity::ActivityImpl*)ptr); + intrusive_ptr_release(*(simgrid::kernel::activity::ActivityImpl**)ptr); }); for (I iter = first; iter != last; iter++) { CommPtr comm = *iter; diff --git a/src/msg/msg_gos.cpp b/src/msg/msg_gos.cpp index 98d58711be..7f2e4b4bb8 100644 --- a/src/msg/msg_gos.cpp +++ b/src/msg/msg_gos.cpp @@ -635,7 +635,7 @@ int MSG_comm_waitany(xbt_dynar_t comms) /* create the equivalent dynar with SIMIX objects */ xbt_dynar_t s_comms = xbt_dynar_new(sizeof(smx_activity_t), [](void*ptr){ - intrusive_ptr_release((simgrid::kernel::activity::ActivityImpl*)ptr); + intrusive_ptr_release(*(simgrid::kernel::activity::ActivityImpl**)ptr); }); msg_comm_t comm; unsigned int cursor; diff --git a/src/smpi/smpi_request.cpp b/src/smpi/smpi_request.cpp index 6001f75315..ebfc570ab5 100644 --- a/src/smpi/smpi_request.cpp +++ b/src/smpi/smpi_request.cpp @@ -763,7 +763,7 @@ int Request::waitany(int count, MPI_Request requests[], MPI_Status * status) if(count > 0) { // Wait for a request to complete xbt_dynar_init(&comms, sizeof(smx_activity_t), [](void*ptr){ - intrusive_ptr_release((simgrid::kernel::activity::ActivityImpl*)ptr); + intrusive_ptr_release(*(simgrid::kernel::activity::ActivityImpl**)ptr); }); int *map = xbt_new(int, count); XBT_DEBUG("Wait for one of %d", count);