Przeglądaj źródła

function _starpu_codelet_pack_args takes a void** to be coherent with other functions

Nathalie Furmento 12 lat temu
rodzic
commit
8ca7aab7ff

+ 1 - 1
mpi/src/starpu_mpi_insert_task.c

@@ -370,7 +370,7 @@ int starpu_mpi_insert_task(MPI_Comm comm, struct starpu_codelet *codelet, ...)
 	int me, do_execute, xrank, nb_nodes;
 	int me, do_execute, xrank, nb_nodes;
 	size_t *size_on_nodes;
 	size_t *size_on_nodes;
 	size_t arg_buffer_size = 0;
 	size_t arg_buffer_size = 0;
-	char *arg_buffer = NULL;
+	void *arg_buffer = NULL;
 	int dest=0, inconsistent_execute;
 	int dest=0, inconsistent_execute;
 	int current_data = 0;
 	int current_data = 0;
 
 

+ 2 - 2
src/util/starpu_insert_task.c

@@ -32,7 +32,7 @@ void starpu_codelet_pack_args(void **arg_buffer, size_t *arg_buffer_size, ...)
 	*arg_buffer_size = _starpu_insert_task_get_arg_size(varg_list);
 	*arg_buffer_size = _starpu_insert_task_get_arg_size(varg_list);
 
 
 	va_start(varg_list, arg_buffer_size);
 	va_start(varg_list, arg_buffer_size);
-	_starpu_codelet_pack_args((char **)arg_buffer, *arg_buffer_size, varg_list);
+	_starpu_codelet_pack_args(arg_buffer, *arg_buffer_size, varg_list);
 }
 }
 
 
 void starpu_codelet_unpack_args(void *_cl_arg, ...)
 void starpu_codelet_unpack_args(void *_cl_arg, ...)
@@ -76,7 +76,7 @@ int starpu_insert_task(struct starpu_codelet *cl, ...)
 	if (arg_buffer_size)
 	if (arg_buffer_size)
 	{
 	{
 		va_start(varg_list, cl);
 		va_start(varg_list, cl);
-		_starpu_codelet_pack_args((char **)&arg_buffer, arg_buffer_size, varg_list);
+		_starpu_codelet_pack_args(&arg_buffer, arg_buffer_size, varg_list);
 	}
 	}
 
 
 	struct starpu_task *task = starpu_task_create();
 	struct starpu_task *task = starpu_task_create();

+ 9 - 7
src/util/starpu_insert_task_utils.c

@@ -121,15 +121,16 @@ size_t _starpu_insert_task_get_arg_size(va_list varg_list)
 	return arg_buffer_size;
 	return arg_buffer_size;
 }
 }
 
 
-int _starpu_codelet_pack_args(char **arg_buffer, size_t arg_buffer_size, va_list varg_list)
+int _starpu_codelet_pack_args(void **arg_buffer, size_t arg_buffer_size, va_list varg_list)
 {
 {
 	int arg_type;
 	int arg_type;
 	unsigned current_arg_offset = 0;
 	unsigned current_arg_offset = 0;
 	unsigned char nargs = 0;
 	unsigned char nargs = 0;
+	char *_arg_buffer;
 
 
 	/* The buffer will contain : nargs, {size, content} (x nargs)*/
 	/* The buffer will contain : nargs, {size, content} (x nargs)*/
 
 
-	*arg_buffer = (void *) malloc(arg_buffer_size);
+	_arg_buffer = malloc(arg_buffer_size);
 
 
 	/* We will begin the buffer with the number of args (which is stored as a char) */
 	/* We will begin the buffer with the number of args (which is stored as a char) */
 	current_arg_offset += sizeof(char);
 	current_arg_offset += sizeof(char);
@@ -151,10 +152,10 @@ int _starpu_codelet_pack_args(char **arg_buffer, size_t arg_buffer_size, va_list
 			void *ptr = va_arg(varg_list, void *);
 			void *ptr = va_arg(varg_list, void *);
 			size_t cst_size = va_arg(varg_list, size_t);
 			size_t cst_size = va_arg(varg_list, size_t);
 
 
-			*(size_t *)(&(*arg_buffer)[current_arg_offset]) = cst_size;
+			*(size_t *)(&(_arg_buffer)[current_arg_offset]) = cst_size;
 			current_arg_offset += sizeof(size_t);
 			current_arg_offset += sizeof(size_t);
 
 
-			memcpy(&(*arg_buffer)[current_arg_offset], ptr, cst_size);
+			memcpy(&_arg_buffer[current_arg_offset], ptr, cst_size);
 			current_arg_offset += cst_size;
 			current_arg_offset += cst_size;
 
 
 			nargs++;
 			nargs++;
@@ -206,14 +207,15 @@ int _starpu_codelet_pack_args(char **arg_buffer, size_t arg_buffer_size, va_list
 
 
 	if (nargs)
 	if (nargs)
 	{
 	{
-		(*arg_buffer)[0] = nargs;
+		_arg_buffer[0] = nargs;
 	}
 	}
 	else
 	else
 	{
 	{
-		free(*arg_buffer);
-		*arg_buffer = NULL;
+		free(_arg_buffer);
+		_arg_buffer = NULL;
 	}
 	}
 
 
+	*arg_buffer = _arg_buffer;
 	va_end(varg_list);
 	va_end(varg_list);
 	return 0;
 	return 0;
 }
 }

+ 1 - 1
src/util/starpu_insert_task_utils.h

@@ -22,7 +22,7 @@
 #include <starpu.h>
 #include <starpu.h>
 
 
 size_t _starpu_insert_task_get_arg_size(va_list varg_list);
 size_t _starpu_insert_task_get_arg_size(va_list varg_list);
-int _starpu_codelet_pack_args(char **arg_buffer, size_t arg_buffer_size, va_list varg_list);
+int _starpu_codelet_pack_args(void **arg_buffer, size_t arg_buffer_size, va_list varg_list);
 int _starpu_insert_task_create_and_submit(void *arg_buffer, size_t arg_buffer_size, struct starpu_codelet *cl, struct starpu_task **task, va_list varg_list);
 int _starpu_insert_task_create_and_submit(void *arg_buffer, size_t arg_buffer_size, struct starpu_codelet *cl, struct starpu_task **task, va_list varg_list);
 int _starpu_insert_task_create_and_submit_array(void *arg_buffer, size_t arg_buffer_size, struct starpu_codelet *cl, struct starpu_task **task, starpu_data_handle_t *handles, unsigned nb_handles, va_list varg_list);
 int _starpu_insert_task_create_and_submit_array(void *arg_buffer, size_t arg_buffer_size, struct starpu_codelet *cl, struct starpu_task **task, starpu_data_handle_t *handles, unsigned nb_handles, va_list varg_list);