diff --git a/src/cell.c b/src/cell.c index 60bd3e799f85be6cee79bd524eb0651e45e31f6d..fed6cc22b08ab29d7763ca419cef90b8c91fdbde 100644 --- a/src/cell.c +++ b/src/cell.c @@ -52,6 +52,7 @@ #include "gravity.h" #include "hydro.h" #include "hydro_properties.h" +#include "memswap.h" #include "minmax.h" #include "scheduler.h" #include "space.h" @@ -513,15 +514,9 @@ void cell_split(struct cell *c, ptrdiff_t parts_offset, int *buff) { j++; bucket_count[bid]++; } - struct part temp_part = parts[j]; - struct xpart temp_xpart = xparts[j]; - int temp_buff = buff[j]; - parts[j] = part; - xparts[j] = xpart; - buff[j] = bid; - part = temp_part; - xpart = temp_xpart; - bid = temp_buff; + memswap(&parts[j], &part, sizeof(struct part)); + memswap(&xparts[j], &xpart, sizeof(struct xpart)); + memswap(&buff[j], &bid, sizeof(int)); } parts[k] = part; xparts[k] = xpart; @@ -602,12 +597,8 @@ void cell_split(struct cell *c, ptrdiff_t parts_offset, int *buff) { j++; bucket_count[bid]++; } - struct gpart temp_gpart = gparts[j]; - int temp_buff = buff[j]; - gparts[j] = gpart; - buff[j] = bid; - gpart = temp_gpart; - bid = temp_buff; + memswap(&gparts[j], &gpart, sizeof(struct gpart)); + memswap(&buff[j], &bid, sizeof(int)); } gparts[k] = gpart; buff[k] = bid;