diff options
author | Christian C <cc@localhost> | 2025-03-22 22:43:17 -0700 |
---|---|---|
committer | Christian C <cc@localhost> | 2025-03-22 22:43:17 -0700 |
commit | ca1d8c3194f679d1901ea83ff954c82114d5559b (patch) | |
tree | 162dea23ae174cbbfd93e286959a042e20f8209d /lib/data | |
parent | df7606101ae9a04c72b1b7172f2250e1be7ff271 (diff) |
Smarter free
Diffstat (limited to 'lib/data')
-rw-r--r-- | lib/data/image_types.c | 28 |
1 files changed, 22 insertions, 6 deletions
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); + } } |