PNG: Fix leak if you don't ask for metadata.

This commit is contained in:
Jeroen van Rijn
2021-06-21 22:47:54 +02:00
parent 922b511a24
commit d5e2b387fa
2 changed files with 4 additions and 8 deletions

View File

@@ -34,10 +34,8 @@ destroy :: proc(img: ^Image) {
}
bytes.buffer_destroy(&img.pixels);
if img.metadata_ptr != nil && img.metadata_type == Info {
// Clean up Info.
free(img.metadata_ptr);
}
// Clean up Info.
free(img.metadata_ptr);
/*
We don't need to do anything for the individual chunks.

View File

@@ -402,6 +402,8 @@ load_from_stream :: proc(stream: io.Stream, options := Options{}, allocator := c
}
info := new(Info, context.allocator);
img.metadata_ptr = info;
img.metadata_type = typeid_of(Info);
ctx := &compress.Context{
input = stream,
@@ -663,10 +665,6 @@ load_from_stream :: proc(stream: io.Stream, options := Options{}, allocator := c
}
}
if .return_header in options || .return_metadata in options {
img.metadata_ptr = info;
img.metadata_type = typeid_of(Info);
}
if .do_not_decompress_image in options {
img.channels = final_image_channels;
return img, nil;