Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
'request' cannot be null here (verified before at line 611.
[simgrid.git] / src / smpi / bindings / smpi_pmpi_request.cpp
index 926b55c..39683f8 100644 (file)
@@ -613,8 +613,7 @@ int PMPI_Wait(MPI_Request * request, MPI_Status * status)
   } else if (*request == MPI_REQUEST_NULL) {
     retval = MPI_SUCCESS;
   } else {
-
-    int rank = (request!=nullptr && (*request)->comm() != MPI_COMM_NULL) ? smpi_process()->index() : -1;
+    int rank = (*request)->comm() != MPI_COMM_NULL ? smpi_process()->index() : -1;
 
     int src_traced = (*request)->src();
     int dst_traced = (*request)->dst();
@@ -646,6 +645,9 @@ int PMPI_Waitany(int count, MPI_Request requests[], int *index, MPI_Status * sta
   if (index == nullptr)
     return MPI_ERR_ARG;
 
+  if (count <= 0)
+    return MPI_SUCCESS;
+
   smpi_bench_end();
   //save requests information for tracing
   typedef struct {
@@ -655,10 +657,8 @@ int PMPI_Waitany(int count, MPI_Request requests[], int *index, MPI_Status * sta
     int tag;
     MPI_Comm comm;
   } savedvalstype;
-  savedvalstype* savedvals=nullptr;
-  if(count>0){
-    savedvals = xbt_new0(savedvalstype, count);
-  }
+  savedvalstype* savedvals = xbt_new0(savedvalstype, count);
+
   for (int i = 0; i < count; i++) {
     MPI_Request req = requests[i];      //already received requests are no longer valid
     if (req) {