diff --git a/src/cell.c b/src/cell.c index 6e0d13edcb92ee07334d151de064ed4fbec8c5a8..7ce6fb81a8fa6875884d3f5c840c36e5177cdf6b 100644 --- a/src/cell.c +++ b/src/cell.c @@ -580,7 +580,7 @@ void cell_split(struct cell *c, ptrdiff_t parts_offset) { } /* Re-link the gparts. */ - part_relink_gparts(parts, count, parts_offset); + if (count > 0 && gcount > 0) part_relink_gparts(parts, count, parts_offset); #ifdef SWIFT_DEBUG_CHECKS /* Verify that _all_ the parts have been assigned to a cell. */ @@ -675,7 +675,8 @@ void cell_split(struct cell *c, ptrdiff_t parts_offset) { } /* Re-link the parts. */ - part_relink_parts(gparts, gcount, parts - parts_offset); + if (count > 0 && gcount > 0) + part_relink_parts(gparts, gcount, parts - parts_offset); } /** diff --git a/src/engine.c b/src/engine.c index 9c22546c09ebbc84d9c5eb6616b43c8ced1b1042..8c0501ae57d89fc244fe4433763550e1ad4e9c0a 100644 --- a/src/engine.c +++ b/src/engine.c @@ -2936,7 +2936,8 @@ void engine_split(struct engine *e, struct partition *initial_partition) { s->xparts = xparts_new; /* Re-link the gparts. */ - part_relink_gparts(s->parts, s->nr_parts, 0); + if (s->nr_parts > 0 && s->nr_gparts > 0) + part_relink_gparts(s->parts, s->nr_parts, 0); /* Re-allocate the local gparts. */ if (e->verbose) @@ -2952,7 +2953,8 @@ void engine_split(struct engine *e, struct partition *initial_partition) { s->gparts = gparts_new; /* Re-link the parts. */ - part_relink_parts(s->gparts, s->nr_gparts, s->parts); + if (s->nr_parts > 0 && s->nr_gparts > 0) + part_relink_parts(s->gparts, s->nr_gparts, s->parts); #ifdef SWIFT_DEBUG_CHECKS diff --git a/src/space.c b/src/space.c index 48723d9dcc94b7d18dd7c67c44ae8d55d0aa6ea4..cdd5958cbc515003f4a86a41c9a7075fa3b4364f 100644 --- a/src/space.c +++ b/src/space.c @@ -589,7 +589,7 @@ void space_rebuild(struct space *s, double cell_max, int verbose) { space_parts_sort(s, ind, nr_parts, 0, s->nr_cells - 1, verbose); /* Re-link the gparts. */ - part_relink_gparts(s->parts, nr_parts, 0); + if (nr_parts > 0 && nr_gparts > 0) part_relink_gparts(s->parts, nr_parts, 0); #ifdef SWIFT_DEBUG_CHECKS /* Verify space_sort_struct. */ @@ -640,7 +640,8 @@ void space_rebuild(struct space *s, double cell_max, int verbose) { space_gparts_sort(s, gind, nr_gparts, 0, s->nr_cells - 1, verbose); /* Re-link the parts. */ - part_relink_parts(s->gparts, nr_gparts, s->parts); + if (nr_parts > 0 && nr_gparts > 0) + part_relink_parts(s->gparts, nr_gparts, s->parts); /* We no longer need the indices as of here. */ free(gind);