Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
oops
[simgrid.git] / src / smpi / colls / alltoall-bruck.c
index 8dd710c..10b4d9c 100644 (file)
@@ -48,7 +48,7 @@ smpi_coll_tuned_alltoall_bruck(void *send_buff, int send_count,
 
   extent = smpi_datatype_get_extent(recv_type);
 
-  tmp_buff = (char *) xbt_malloc(num_procs * recv_count * extent);
+  tmp_buff = (char *) smpi_get_tmp_sendbuffer(num_procs * recv_count * extent);
   disps = (int *) xbt_malloc(sizeof(int) * num_procs);
   blocks_length = (int *) xbt_malloc(sizeof(int) * num_procs);
 
@@ -86,7 +86,7 @@ smpi_coll_tuned_alltoall_bruck(void *send_buff, int send_count,
 
     smpi_mpi_sendrecv(tmp_buff, position, MPI_PACKED, dst, tag, recv_buff, 1,
                  new_type, src, tag, comm, &status);
-    smpi_datatype_free(&new_type);
+    smpi_datatype_unuse(new_type);
 
     pof2 *= 2;
   }
@@ -110,6 +110,6 @@ smpi_coll_tuned_alltoall_bruck(void *send_buff, int send_count,
                  recv_ptr + (num_procs - i - 1) * recv_count * extent,
                  recv_count, recv_type, rank, tag, comm, &status);
 
-  free(tmp_buff);
+  smpi_free_tmp_buffer(tmp_buff);
   return MPI_SUCCESS;
 }