diff --git a/AK/kmalloc.h b/AK/kmalloc.h index c76678dc4f4..6ef4caed0eb 100644 --- a/AK/kmalloc.h +++ b/AK/kmalloc.h @@ -26,7 +26,7 @@ #pragma once -#if !defined(__serenity__) || !defined(KERNEL) +#ifndef __serenity__ # include #endif @@ -44,8 +44,53 @@ # include #else # include + # define kcalloc calloc # define kmalloc malloc # define kfree free # define krealloc realloc + +# ifdef __serenity__ + +inline void* operator new(size_t size) +{ + return kmalloc(size); +} + +inline void operator delete(void* ptr) +{ + return kfree(ptr); +} + +inline void operator delete(void* ptr, size_t) +{ + return kfree(ptr); +} + +inline void* operator new[](size_t size) +{ + return kmalloc(size); +} + +inline void operator delete[](void* ptr) +{ + return kfree(ptr); +} + +inline void operator delete[](void* ptr, size_t) +{ + return kfree(ptr); +} + +inline void* operator new(size_t, void* ptr) +{ + return ptr; +} + +inline void* operator new[](size_t, void* ptr) +{ + return ptr; +} +# endif + #endif