1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 22:17:45 +00:00

AK+Kernel: Avoid double memory clearing of HashTable buckets

Since the allocated memory is going to be zeroed immediately anyway,
let's avoid redundantly scrubbing it with MALLOC_SCRUB_BYTE just before
that.

The latest versions of gcc and Clang can automatically do this malloc +
memset -> calloc optimization, but I've seen a couple of places where it
failed to be done.

This commit also adds a naive kcalloc function to the kernel that
doesn't (yet) eliminate the redundancy like the userland does.
This commit is contained in:
Daniel Bertalan 2022-03-14 23:59:16 +01:00 committed by Andreas Kling
parent cd21e03225
commit e3eb68dd58
4 changed files with 15 additions and 2 deletions

View file

@ -72,6 +72,7 @@ void operator delete[](void* ptrs) noexcept DISALLOW("All deletes in the kernel
void operator delete[](void* ptr, size_t) noexcept;
[[gnu::malloc, gnu::alloc_size(1)]] void* kmalloc(size_t);
[[gnu::malloc, gnu::alloc_size(1, 2)]] void* kcalloc(size_t, size_t);
[[gnu::malloc, gnu::alloc_size(1), gnu::alloc_align(2)]] void* kmalloc_aligned(size_t size, size_t alignment);