Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Change malloc/free to new/delete.
[simgrid.git] / src / smpi / colls / allgather / allgather-NTSLR-NB.cpp
index dd1018a..f05db0c 100644 (file)
@@ -1,14 +1,18 @@
-/* Copyright (c) 2013-2014. 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
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include "../colls_private.h"
+#include "../colls_private.hpp"
+
+namespace simgrid{
+namespace smpi{
+
 
 // Allgather-Non-Topoloty-Scecific-Logical-Ring algorithm
 int
-smpi_coll_tuned_allgather_NTSLR_NB(void *sbuf, int scount, MPI_Datatype stype,
+Coll_allgather_NTSLR_NB::allgather(const void *sbuf, int scount, MPI_Datatype stype,
                                    void *rbuf, int rcount, MPI_Datatype rtype,
                                    MPI_Comm comm)
 {
@@ -22,16 +26,14 @@ smpi_coll_tuned_allgather_NTSLR_NB(void *sbuf, int scount, MPI_Datatype stype,
   size = comm->size();
   rextent = rtype->get_extent();
   sextent = stype->get_extent();
-  MPI_Request *rrequest_array;
-  MPI_Request *srequest_array;
-  rrequest_array = (MPI_Request *) xbt_malloc(size * sizeof(MPI_Request));
-  srequest_array = (MPI_Request *) xbt_malloc(size * sizeof(MPI_Request));
+  MPI_Request* rrequest_array = new MPI_Request[size];
+  MPI_Request* srequest_array = new MPI_Request[size];
 
   // irregular case use default MPI fucntions
   if (scount * sextent != rcount * rextent) {
-    XBT_WARN("MPI_allgather_NTSLR_NB use default MPI_allgather.");  
-    smpi_mpi_allgather(sbuf, scount, stype, rbuf, rcount, rtype, comm);
-    return MPI_SUCCESS;    
+    XBT_WARN("MPI_allgather_NTSLR_NB use default MPI_allgather.");
+    Coll_allgather_default::allgather(sbuf, scount, stype, rbuf, rcount, rtype, comm);
+    return MPI_SUCCESS;
   }
 
   // topo non-specific
@@ -62,8 +64,11 @@ smpi_coll_tuned_allgather_NTSLR_NB(void *sbuf, int scount, MPI_Datatype stype,
     Request::wait(&srequest_array[i], &status2);
   }
 
-  free(rrequest_array);
-  free(srequest_array);
+  delete[] rrequest_array;
+  delete[] srequest_array;
 
   return MPI_SUCCESS;
 }
+
+}
+}