Make sure to delete on the right allocator.

This commit is contained in:
Jeroen van Rijn
2021-09-19 12:19:01 +02:00
parent 505113ee2d
commit 72fe1e88a3
4 changed files with 19 additions and 9 deletions
+7 -3
View File
@@ -368,11 +368,13 @@ load_from_slice :: proc(slice: []u8, options := Options{}, allocator := context.
}
load_from_file :: proc(filename: string, options := Options{}, allocator := context.allocator) -> (img: ^Image, err: Error) {
data, ok := os.read_entire_file(filename, allocator)
context.allocator = allocator
data, ok := os.read_entire_file(filename)
defer delete(data)
if ok {
return load_from_slice(data, options, allocator)
return load_from_slice(data, options)
} else {
img = new(Image)
return img, E_General.File_Not_Found
@@ -380,7 +382,9 @@ load_from_file :: proc(filename: string, options := Options{}, allocator := cont
}
load_from_context :: proc(ctx: ^$C, options := Options{}, allocator := context.allocator) -> (img: ^Image, err: Error) {
context.allocator = allocator
options := options
if .info in options {
options |= {.return_metadata, .do_not_decompress_image}
options -= {.info}
@@ -398,7 +402,7 @@ load_from_context :: proc(ctx: ^$C, options := Options{}, allocator := context.a
img = new(Image)
}
info := new(Info, context.allocator)
info := new(Info)
img.metadata_ptr = info
img.metadata_type = typeid_of(Info)