mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-05 07:08:48 +00:00
Make sure to delete on the right allocator.
This commit is contained in:
@@ -104,12 +104,14 @@ GZIP_MAX_PAYLOAD_SIZE :: int(max(u32le))
|
||||
load :: proc{load_from_slice, load_from_file, load_from_context}
|
||||
|
||||
load_from_file :: proc(filename: string, buf: ^bytes.Buffer, expected_output_size := -1, allocator := context.allocator) -> (err: Error) {
|
||||
data, ok := os.read_entire_file(filename, allocator)
|
||||
context.allocator = allocator
|
||||
|
||||
data, ok := os.read_entire_file(filename)
|
||||
defer delete(data)
|
||||
|
||||
err = E_General.File_Not_Found
|
||||
if ok {
|
||||
err = load_from_slice(data, buf, len(data), expected_output_size, allocator)
|
||||
err = load_from_slice(data, buf, len(data), expected_output_size)
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -125,6 +127,7 @@ load_from_slice :: proc(slice: []u8, buf: ^bytes.Buffer, known_gzip_size := -1,
|
||||
}
|
||||
|
||||
load_from_context :: proc(z: ^$C, buf: ^bytes.Buffer, known_gzip_size := -1, expected_output_size := -1, allocator := context.allocator) -> (err: Error) {
|
||||
context.allocator = allocator
|
||||
buf := buf
|
||||
expected_output_size := expected_output_size
|
||||
|
||||
|
||||
@@ -495,6 +495,7 @@ inflate_from_context :: proc(using ctx: ^compress.Context_Memory_Input, raw := f
|
||||
|
||||
@(optimization_mode="speed")
|
||||
inflate_raw :: proc(z: ^$C, expected_output_size := -1, allocator := context.allocator) -> (err: Error) #no_bounds_check {
|
||||
context.allocator = allocator
|
||||
expected_output_size := expected_output_size
|
||||
|
||||
/*
|
||||
@@ -526,9 +527,9 @@ inflate_raw :: proc(z: ^$C, expected_output_size := -1, allocator := context.all
|
||||
defer free(z_offset)
|
||||
defer free(codelength_ht)
|
||||
|
||||
z_repeat = allocate_huffman_table(allocator=context.allocator) or_return
|
||||
z_offset = allocate_huffman_table(allocator=context.allocator) or_return
|
||||
codelength_ht = allocate_huffman_table(allocator=context.allocator) or_return
|
||||
z_repeat = allocate_huffman_table() or_return
|
||||
z_offset = allocate_huffman_table() or_return
|
||||
codelength_ht = allocate_huffman_table() or_return
|
||||
|
||||
final := u32(0)
|
||||
type := u32(0)
|
||||
|
||||
Reference in New Issue
Block a user