diff --git a/src/engine.c b/src/engine.c index 1f01c3b7fd5cb1adb94a5149feb4fc6ac28aa8f1..dac6fed8b3e08188846399a11bb78b3396ec73d6 100644 --- a/src/engine.c +++ b/src/engine.c @@ -149,6 +149,12 @@ struct end_of_step_data { */ void engine_addlink(struct engine *e, struct link **l, struct task *t) { +#ifdef SWIFT_DEBUG_CHECKS + if (t == NULL) { + error("Trying to link NULL task."); + } +#endif + /* Get the next free link. */ const size_t ind = atomic_inc(&e->nr_links); if (ind >= e->size_links) { diff --git a/src/engine_maketasks.c b/src/engine_maketasks.c index 2442a102883cc9970a1e9b560d5181c697d61135..09920a49572ce5c47ca071c0cfd7ef094d0ad612 100644 --- a/src/engine_maketasks.c +++ b/src/engine_maketasks.c @@ -328,10 +328,14 @@ void engine_addtasks_recv_hydro(struct engine *e, struct cell *c, c->mpi.tag, 0, c, NULL); } - engine_addlink(e, &c->mpi.recv, t_xv); - engine_addlink(e, &c->mpi.recv, t_rho); - engine_addlink(e, &c->mpi.recv, t_gradient); - engine_addlink(e, &c->mpi.recv, t_ti); + if (t_xv != NULL) { + engine_addlink(e, &c->mpi.recv, t_xv); + engine_addlink(e, &c->mpi.recv, t_rho); +#ifdef EXTRA_HYDRO_LOOP + engine_addlink(e, &c->mpi.recv, t_gradient); +#endif + engine_addlink(e, &c->mpi.recv, t_ti); + } /* Add dependencies. */ if (c->hydro.sorts != NULL) {