From 1427d6a98b7ca9e0da0b885e8062905fde4a1172 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Wed, 26 Dec 2018 21:34:19 +0100 Subject: [PATCH] particle: provide a default destroy() function This allows us to destroy the associated decoration. --- particle.c | 8 ++++++++ particle.h | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/particle.c b/particle.c index 9e5288b..a280e11 100644 --- a/particle.c +++ b/particle.c @@ -1,6 +1,14 @@ #include "particle.h" #include +void +particle_default_destroy(struct particle *particle) +{ + if (particle->deco != NULL) + particle->deco->destroy(particle->deco); + free(particle); +} + struct particle * particle_common_new(int left_margin, int right_margin) { diff --git a/particle.h b/particle.h index 56f2222..375d533 100644 --- a/particle.h +++ b/particle.h @@ -14,7 +14,7 @@ struct particle { void *private; int left_margin, right_margin; - const struct deco *deco; + struct deco *deco; void (*destroy)(struct particle *particle); struct exposable *(*instantiate)(const struct particle *particle, @@ -35,3 +35,4 @@ struct exposable { }; struct particle *particle_common_new(int left_margin, int right_margin); +void particle_default_destroy(struct particle *particle);