mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
Disable aligned heap allocations hack in os.heap_allocator_proc
This commit is contained in:
@@ -122,6 +122,7 @@ read_ptr :: proc(fd: Handle, data: rawptr, len: int) -> (int, Errno) {
|
|||||||
heap_allocator_proc :: proc(allocator_data: rawptr, mode: mem.Allocator_Mode,
|
heap_allocator_proc :: proc(allocator_data: rawptr, mode: mem.Allocator_Mode,
|
||||||
size, alignment: int,
|
size, alignment: int,
|
||||||
old_memory: rawptr, old_size: int, flags: u64 = 0, loc := #caller_location) -> rawptr {
|
old_memory: rawptr, old_size: int, flags: u64 = 0, loc := #caller_location) -> rawptr {
|
||||||
|
/*
|
||||||
//
|
//
|
||||||
// NOTE(tetra, 2019-11-10): The heap doesn't respect alignment.
|
// NOTE(tetra, 2019-11-10): The heap doesn't respect alignment.
|
||||||
// HACK: Overallocate, align forwards, and then use the two bytes immediately before
|
// HACK: Overallocate, align forwards, and then use the two bytes immediately before
|
||||||
@@ -183,6 +184,25 @@ heap_allocator_proc :: proc(allocator_data: rawptr, mode: mem.Allocator_Mode,
|
|||||||
return align_and_store_padding(ptr, alignment);
|
return align_and_store_padding(ptr, alignment);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return nil;
|
||||||
|
*/
|
||||||
|
switch mode {
|
||||||
|
case .Alloc:
|
||||||
|
return heap_alloc(size);
|
||||||
|
|
||||||
|
case .Free:
|
||||||
|
if old_memory != nil {
|
||||||
|
heap_free(old_memory);
|
||||||
|
}
|
||||||
|
return nil;
|
||||||
|
|
||||||
|
case .Free_All:
|
||||||
|
// NOTE(bill): Does nothing
|
||||||
|
|
||||||
|
case .Resize:
|
||||||
|
return heap_resize(ptr, size);
|
||||||
|
}
|
||||||
|
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user