diff options
| author | gingerBill <bill@gingerbill.org> | 2022-09-22 01:17:58 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2022-09-22 01:17:58 +0100 |
| commit | 07d798c61a3d19c9b3c4ae66c6fa612a4d9de6bb (patch) | |
| tree | 632d0961daab3f8c375be539377508b2ce997a24 /core/c | |
| parent | b426e8577bb04d365a031e198216d12ad99b3e0b (diff) | |
Fix `libc.aligned_alloc` on Windows
Diffstat (limited to 'core/c')
| -rw-r--r-- | core/c/libc/stdlib.odin | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/core/c/libc/stdlib.odin b/core/c/libc/stdlib.odin index a278db0ef..68fb4c4dc 100644 --- a/core/c/libc/stdlib.odin +++ b/core/c/libc/stdlib.odin @@ -88,6 +88,7 @@ foreign libc { srand :: proc(seed: uint) --- // 7.22.3 Memory management functions + @(link_name="_aligned_malloc" when ODIN_OS == .Windows else "aligned_alloc") aligned_alloc :: proc(aligment, size: size_t) -> rawptr --- calloc :: proc(nmemb, size: size_t) -> rawptr --- free :: proc(ptr: rawptr) --- @@ -125,3 +126,15 @@ foreign libc { mbstowcs :: proc(pwcs: ^wchar_t, s: cstring, n: size_t) -> size_t --- wcstombs :: proc(s: [^]char, pwcs: ^wchar_t, n: size_t) -> size_t --- } + + +aligned_free :: proc "c" (ptr: rawptr) { + when ODIN_OS == .Windows { + foreign libc { + _aligned_free :: proc(ptr: rawptr) --- + } + _aligned_free(ptr) + } else { + free(ptr) + } +}
\ No newline at end of file |