Bladeren bron

remove the malloc in starpu_codelet_unpack_arg

HE Kun 4 jaren geleden
bovenliggende
commit
3833959135
2 gewijzigde bestanden met toevoegingen van 7 en 3 verwijderingen
  1. 1 1
      include/starpu_task_util.h
  2. 6 2
      src/util/starpu_task_insert_utils.c

+ 1 - 1
include/starpu_task_util.h

@@ -520,7 +520,7 @@ void starpu_codelet_unpack_arg_init(struct starpu_codelet_pack_arg_data *state,
    Unpack one argument from struct starpu_codelet_pack_arg \p state into ptr.
    That structure has to be initialized before with starpu_codelet_unpack_arg_init().
 */
-void starpu_codelet_unpack_arg(struct starpu_codelet_pack_arg_data *state, void **ptr);
+void starpu_codelet_unpack_arg(struct starpu_codelet_pack_arg_data *state, void *ptr);
 
 void starpu_codelet_unpack_arg_fini(struct starpu_codelet_pack_arg_data *state);
 

+ 6 - 2
src/util/starpu_task_insert_utils.c

@@ -71,14 +71,15 @@ void starpu_codelet_unpack_arg_init(struct starpu_codelet_pack_arg_data *state,
 	state->nargs = 0;
 }
 
-void starpu_codelet_unpack_arg(struct starpu_codelet_pack_arg_data *state, void **ptr)
+void starpu_codelet_unpack_arg(struct starpu_codelet_pack_arg_data *state, void *ptr)
 {
 	size_t ptr_size;
 	memcpy((void *)&ptr_size, state->arg_buffer+state->current_offset, sizeof(ptr_size));
 	state->current_offset += sizeof(ptr_size);
-	*ptr =(void **)malloc(ptr_size);
+
 	memcpy(ptr, state->arg_buffer+state->current_offset, ptr_size);
 	state->current_offset += ptr_size;
+
 	state->nargs++;
 }
 
@@ -91,8 +92,11 @@ void starpu_codelet_unpack_discard_arg(struct starpu_codelet_pack_arg_data *stat
 {
 	size_t ptr_size;
 	memcpy((void *)&ptr_size, state->arg_buffer+state->current_offset, sizeof(ptr_size));
+	
 	state->current_offset += sizeof(ptr_size);
 	state->current_offset += ptr_size;
+
+	state->nargs++;
 }
 
 int _starpu_codelet_pack_args(void **arg_buffer, size_t *arg_buffer_size, va_list varg_list)