diff --git a/src/cell.c b/src/cell.c index 7b663b92db59ff651d87ae89e36c39b5b9f18cf2..2796a8933e1fedc2522c833570558adda369140b 100644 --- a/src/cell.c +++ b/src/cell.c @@ -711,4 +711,11 @@ void cell_clean_links(struct cell *c, void *data) { /** * @brief Frees up the memory allocated for this #cell */ -void cell_clean(struct cell *c) { free(c->sort); } +void cell_clean(struct cell *c) { + + free(c->sort); + + /* Recurse */ + for (int k = 0; k < 8; k++) + if (c->progeny[k]) cell_clean(c->progeny[k]); +} diff --git a/src/engine.c b/src/engine.c index 4d32da00f750c15b9f27235d7c2698c1f041abbd..b33850be9415f30f6c0ac38e70a74a7d239b791e 100644 --- a/src/engine.c +++ b/src/engine.c @@ -3178,8 +3178,8 @@ void engine_init(struct engine *e, struct space *s, #if defined(HAVE_SETAFFINITY) if (with_aff) { free(cpuid); - free(buf); } + free(buf); #endif /* Wait for the runner threads to be in place. */