-/* Copyright (c) 2013-2017. The SimGrid Team.
+/* Copyright (c) 2013-2019. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
#define MPIR_Scatter_MV2_Binomial Coll_scatter_ompi_binomial::scatter
#define MPIR_Scatter_MV2_Direct Coll_scatter_ompi_basic_linear::scatter
-extern int (*MV2_Scatter_intra_function) (void *sendbuf, int sendcount, MPI_Datatype sendtype,
+extern int (*MV2_Scatter_intra_function) (const void *sendbuf, int sendcount, MPI_Datatype sendtype,
void *recvbuf, int recvcount, MPI_Datatype recvtype,
int root, MPI_Comm comm);
namespace simgrid{
namespace smpi{
-int Coll_scatter_mvapich2_two_level_direct::scatter(void *sendbuf,
+int Coll_scatter_mvapich2_two_level_direct::scatter(const void *sendbuf,
int sendcnt,
MPI_Datatype sendtype,
void *recvbuf,
if (root != leader_of_root) {
if (leader_comm_rank == leader_root) {
- displs = static_cast<int*>(xbt_malloc(sizeof(int) * leader_comm_size));
- sendcnts = static_cast<int*>(xbt_malloc(sizeof(int) * leader_comm_size));
+ displs = new int[leader_comm_size];
+ sendcnts = new int[leader_comm_size];
sendcnts[0] = node_sizes[0] * nbytes;
displs[0] = 0;
leader_root, leader_comm);
} else {
if (leader_comm_rank == leader_root) {
- displs = static_cast<int*>(xbt_malloc(sizeof(int) * leader_comm_size));
- sendcnts = static_cast<int*>(xbt_malloc(sizeof(int) * leader_comm_size));
+ displs = new int[leader_comm_size];
+ sendcnts = new int[leader_comm_size];
sendcnts[0] = node_sizes[0] * sendcnt;
displs[0] = 0;
leader_comm);
}
if (leader_comm_rank == leader_root) {
- xbt_free(displs);
- xbt_free(sendcnts);
+ delete[] displs;
+ delete[] sendcnts;
}
} else {
if (leader_of_root != root) {
}
-int Coll_scatter_mvapich2_two_level_binomial::scatter(void *sendbuf,
+int Coll_scatter_mvapich2_two_level_binomial::scatter(const void *sendbuf,
int sendcnt,
MPI_Datatype sendtype,
void *recvbuf,
if (root != leader_of_root) {
if (leader_comm_rank == leader_root) {
- displs = static_cast<int*>(xbt_malloc(sizeof(int) * leader_comm_size));
- sendcnts = static_cast<int*>(xbt_malloc(sizeof(int) * leader_comm_size));
+ displs = new int[leader_comm_size];
+ sendcnts = new int[leader_comm_size];
sendcnts[0] = node_sizes[0] * nbytes;
displs[0] = 0;
leader_root, leader_comm);
} else {
if (leader_comm_rank == leader_root) {
- displs = static_cast<int*>(xbt_malloc(sizeof(int) * leader_comm_size));
- sendcnts = static_cast<int*>(xbt_malloc(sizeof(int) * leader_comm_size));
+ displs = new int[leader_comm_size];
+ sendcnts = new int[leader_comm_size];
sendcnts[0] = node_sizes[0] * sendcnt;
displs[0] = 0;
leader_comm);
}
if (leader_comm_rank == leader_root) {
- xbt_free(displs);
- xbt_free(sendcnts);
+ delete[] displs;
+ delete[] sendcnts;
}
} else {
if (leader_of_root != root) {