From 79a1639f8a67a23ed378afb6a1686c4dbcff1da3 Mon Sep 17 00:00:00 2001 From: Christoffer Lerno Date: Mon, 19 Aug 2024 15:25:00 +0200 Subject: [PATCH] Fix aligned alloc for Win32 targets. --- lib/std/core/allocators/libc_allocator.c3 | 2 +- lib/std/os/win32/heap.c3 | 4 ++-- releasenotes.md | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/std/core/allocators/libc_allocator.c3 b/lib/std/core/allocators/libc_allocator.c3 index 602aa8669..b4524dac1 100644 --- a/lib/std/core/allocators/libc_allocator.c3 +++ b/lib/std/core/allocators/libc_allocator.c3 @@ -79,7 +79,7 @@ fn void*! LibcAllocator.acquire(&self, usz bytes, AllocInitType init_type, usz a { if (alignment > 0) { - return win32::_aligned_recalloc(null, bytes, alignment) ?: AllocationFailure.OUT_OF_MEMORY?; + return win32::_aligned_recalloc(null, 1, bytes, alignment) ?: AllocationFailure.OUT_OF_MEMORY?; } return libc::calloc(1, bytes) ?: AllocationFailure.OUT_OF_MEMORY?; } diff --git a/lib/std/os/win32/heap.c3 b/lib/std/os/win32/heap.c3 index 98b99835e..16c13a9b3 100644 --- a/lib/std/os/win32/heap.c3 +++ b/lib/std/os/win32/heap.c3 @@ -2,10 +2,10 @@ module std::os::win32 @if(env::WIN32); extern fn void* _aligned_malloc(usz size, usz alignment); extern fn void* _aligned_realloc(void* memblock, usz size, usz alignment); -extern fn void* _aligned_recalloc(void* memblock, usz size, usz alignment); +extern fn void* _aligned_recalloc(void* memblock, usz num, usz size, usz alignment); extern fn void _aligned_free(void* memblock); extern fn void _aligned_msize(void* memblock, usz alignment, usz offset); extern fn void* _aligned_offset_malloc(usz size, usz alignment, usz offset); extern fn void* _aligned_offset_realloc(void* memblock, usz size, usz alignment, usz offset); -extern fn void* _aligned_offset_recalloc(void* memblock, usz size, usz alignment, usz offset); +extern fn void* _aligned_offset_recalloc(void* memblock, usz num, usz size, usz alignment, usz offset); extern fn usz _msize(void* memblock); \ No newline at end of file diff --git a/releasenotes.md b/releasenotes.md index c1b3583d0..538e92998 100644 --- a/releasenotes.md +++ b/releasenotes.md @@ -80,6 +80,7 @@ - Benchmark / test no longer suppresses debug info. #1364. - Bug when compile time subtracting a distinct type. - `insert_at` incorrectly prevented inserts at the end of a list. +- Fix aligned alloc for Win32 targets. ### Stdlib changes