From d7df2b4c545a3f7b57d8fdabc9d2d4205defdd91 Mon Sep 17 00:00:00 2001 From: Pedro Gonnet <gonnet@google.com> Date: Mon, 26 Jun 2017 22:10:35 +0200 Subject: [PATCH] fix case when c == c->super. --- src/cell.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/cell.c b/src/cell.c index 0b799138bf..95027b972e 100644 --- a/src/cell.c +++ b/src/cell.c @@ -1329,12 +1329,16 @@ void cell_activate_drift_part(struct cell *c, struct scheduler *s) { /* Set the do_sub_drifts all the way up and activate the super drift if this has not yet been done. */ - for (struct cell *parent = c->parent; parent != NULL && !parent->do_sub_drift; - parent = parent->parent) { - parent->do_sub_drift = 1; - if (parent == c->super) { - scheduler_activate(s, parent->drift_part); - break; + if (c == c->super) { + scheduler_activate(s, c->drift_part); + } else { + for (struct cell *parent = c->parent; + parent != NULL && !parent->do_sub_drift; parent = parent->parent) { + parent->do_sub_drift = 1; + if (parent == c->super) { + scheduler_activate(s, parent->drift_part); + break; + } } } } -- GitLab