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);