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 5078c75873e41b1276d4bb8c5ec716a5a24fd467..d5a76656e22fd2ce38d584e156412a7f5a5a5483 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 de6ac7226f01b815d39f3c689bdf23d7ad234c20..f94c27052922f72a10077763a06491e7e124cc76 100644 --- a/src/space.c +++ b/src/space.c @@ -565,7 +565,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. */ @@ -613,7 +613,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);