aboutsummaryrefslogtreecommitdiff
path: root/lib/data
diff options
context:
space:
mode:
authorChristian C <cc@localhost>2025-03-22 22:43:17 -0700
committerChristian C <cc@localhost>2025-03-22 22:43:17 -0700
commitca1d8c3194f679d1901ea83ff954c82114d5559b (patch)
tree162dea23ae174cbbfd93e286959a042e20f8209d /lib/data
parentdf7606101ae9a04c72b1b7172f2250e1be7ff271 (diff)
Smarter free
Diffstat (limited to 'lib/data')
-rw-r--r--lib/data/image_types.c28
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);
+ }
}