From e3dc648bd52d77fd3b8f941c01de483c27ab960c Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Thu, 15 Jun 2017 03:13:35 +0200 Subject: [PATCH] correctly use clumsy xbt_dynar interface How can I be so stupid? --- include/simgrid/s4u/Comm.hpp | 4 ++-- src/msg/msg_gos.cpp | 2 +- src/smpi/smpi_request.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) 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); -- 2.20.1