diff options
Diffstat (limited to 'lib/data/image_types.c')
-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); + } } |