|
@@ -121,15 +121,16 @@ size_t _starpu_insert_task_get_arg_size(va_list varg_list)
|
|
|
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;
|
|
|
unsigned current_arg_offset = 0;
|
|
|
unsigned char nargs = 0;
|
|
|
+ char *_arg_buffer;
|
|
|
|
|
|
/* 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) */
|
|
|
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 *);
|
|
|
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);
|
|
|
|
|
|
- memcpy(&(*arg_buffer)[current_arg_offset], ptr, cst_size);
|
|
|
+ memcpy(&_arg_buffer[current_arg_offset], ptr, cst_size);
|
|
|
current_arg_offset += cst_size;
|
|
|
|
|
|
nargs++;
|
|
@@ -206,14 +207,15 @@ int _starpu_codelet_pack_args(char **arg_buffer, size_t arg_buffer_size, va_list
|
|
|
|
|
|
if (nargs)
|
|
|
{
|
|
|
- (*arg_buffer)[0] = nargs;
|
|
|
+ _arg_buffer[0] = nargs;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- free(*arg_buffer);
|
|
|
- *arg_buffer = NULL;
|
|
|
+ free(_arg_buffer);
|
|
|
+ _arg_buffer = NULL;
|
|
|
}
|
|
|
|
|
|
+ *arg_buffer = _arg_buffer;
|
|
|
va_end(varg_list);
|
|
|
return 0;
|
|
|
}
|