소스 검색

mpi/src/starpu_mpi_insert_task.c: fix bug when freeing size_on_nodes

Nathalie Furmento 12 년 전
부모
커밋
27c1b357ec
1개의 변경된 파일1개의 추가작업 그리고 3개의 파일을 삭제
  1. 1 3
      mpi/src/starpu_mpi_insert_task.c

+ 1 - 3
mpi/src/starpu_mpi_insert_task.c

@@ -479,13 +479,13 @@ int starpu_mpi_insert_task(MPI_Comm comm, struct starpu_codelet *codelet, ...)
 				xrank = i;
 			}
 		}
-		free(size_on_nodes);
 		if (xrank != -1)
 		{
 			_STARPU_MPI_DEBUG("Node %d is having the most R data\n", xrank);
 			do_execute = 1;
 		}
 	}
+	free(size_on_nodes);
 
 	STARPU_ASSERT_MSG(do_execute != -1, "StarPU needs to see a W or a REDUX data which will tell it where to execute the task");
 
@@ -494,7 +494,6 @@ int starpu_mpi_insert_task(MPI_Comm comm, struct starpu_codelet *codelet, ...)
 		if (xrank == -1)
 		{
 			_STARPU_MPI_DEBUG("Different tasks are owning W data. Needs to specify which one is to execute the codelet, using STARPU_EXECUTE_ON_NODE or STARPU_EXECUTE_ON_DATA\n");
-			free(size_on_nodes);
 			return -EINVAL;
 		}
 		else
@@ -695,7 +694,6 @@ int starpu_mpi_insert_task(MPI_Comm comm, struct starpu_codelet *codelet, ...)
 	}
 
 	va_end(varg_list);
-	free(size_on_nodes);
 	_STARPU_MPI_LOG_OUT();
 	return 0;
 }