Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
leaks --
[simgrid.git] / src / smpi / smpi_base.cpp
index 4f8742e..82cc5a9 100644 (file)
@@ -691,6 +691,7 @@ static void finish_wait(MPI_Request * request, MPI_Status * status)
       }else if(req->flags & RECV){//apply op on contiguous buffer for accumulate
           int n =req->real_size/smpi_datatype_size(datatype);
           smpi_op_apply(req->op, req->buf, req->old_buf, &n, &datatype);
+          xbt_free(req->buf);
       }
     }
   }
@@ -1364,9 +1365,9 @@ void smpi_mpi_reduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datat
     xbt_free(tmpbufs);
     xbt_free(requests);
 
-    if( sendbuf == MPI_IN_PLACE ) {
-      smpi_free_tmp_buffer(sendtmpbuf);
-    }
+  }
+  if( sendbuf == MPI_IN_PLACE ) {
+    smpi_free_tmp_buffer(sendtmpbuf);
   }
 }