particle: provide a default destroy() function

This allows us to destroy the associated decoration.
This commit is contained in:
Daniel Eklöf 2018-12-26 21:34:19 +01:00
parent f65a18b655
commit 1427d6a98b
2 changed files with 10 additions and 1 deletions

View file

@ -1,6 +1,14 @@
#include "particle.h" #include "particle.h"
#include <stdlib.h> #include <stdlib.h>
void
particle_default_destroy(struct particle *particle)
{
if (particle->deco != NULL)
particle->deco->destroy(particle->deco);
free(particle);
}
struct particle * struct particle *
particle_common_new(int left_margin, int right_margin) particle_common_new(int left_margin, int right_margin)
{ {

View file

@ -14,7 +14,7 @@ struct particle {
void *private; void *private;
int left_margin, right_margin; int left_margin, right_margin;
const struct deco *deco; struct deco *deco;
void (*destroy)(struct particle *particle); void (*destroy)(struct particle *particle);
struct exposable *(*instantiate)(const 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); struct particle *particle_common_new(int left_margin, int right_margin);
void particle_default_destroy(struct particle *particle);