From ac61ca52e564ff11ef7e7e71e9f19e2bd8d0b774 Mon Sep 17 00:00:00 2001 From: Pedro Gonnet <gonnet@google.com> Date: Tue, 16 Apr 2019 22:38:12 +0200 Subject: [PATCH] oops -- be careful of linking NULL tasks. --- src/engine.c | 6 ++++++ src/engine_maketasks.c | 12 ++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/engine.c b/src/engine.c index 1f01c3b7fd..dac6fed8b3 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 2442a10288..09920a4957 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) { -- GitLab