From ca1d8c3194f679d1901ea83ff954c82114d5559b Mon Sep 17 00:00:00 2001 From: Christian C Date: Sat, 22 Mar 2025 22:43:17 -0700 Subject: Smarter free --- lib/data/image_types.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) (limited to 'lib/data') diff --git a/lib/data/image_types.c b/lib/data/image_types.c index f96b631..c33a88e 100644 --- a/lib/data/image_types.c +++ b/lib/data/image_types.c @@ -29,14 +29,30 @@ struct ImageMask* create_image_mask(size_t width, size_t height) void free_image(struct Image* image) { - free(image->image[0]); - free(image->image); - free(image); + if (image->image[0] != NULL) { + free(image->image[0]); + image->image[0] = NULL; + } + if (image->image != NULL) { + free(image->image); + image->image = NULL; + } + if (image != NULL) { + free(image); + } } void free_image_mask(struct ImageMask* image_mask) { - free(image_mask->mask[0]); - free(image_mask->mask); - free(image_mask); + if (image_mask->mask[0] != NULL) { + free(image_mask->mask[0]); + image_mask->mask[0] = NULL; + } + if (image_mask->mask != NULL) { + free(image_mask->mask); + image_mask->mask = NULL; + } + if (image_mask != NULL) { + free(image_mask); + } } -- cgit v1.2.1