zephyr/subsys/cpp/cpp_new.cpp
Jan Van Winkel 8a98a67bf1 cpp: Use malloc/free instead of kernel variants in new/delete
Use malloc/free instead of k_malloc/k_free in operator new/delete
implementation or use libstdc++ implementation when available.

Further updated cpp_synchronization sample to enable minimal libc heap
as virtual destructor requires operator delete which depends on free.

Signed-off-by: Jan Van Winkel <jan.van_winkel@dxplore.eu>
2019-11-26 12:41:54 -06:00

40 lines
524 B
C++

/*
* Copyright (c) 2018
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stdlib.h>
void* operator new(size_t size)
{
return malloc(size);
}
void* operator new[](size_t size)
{
return malloc(size);
}
void operator delete(void* ptr) noexcept
{
free(ptr);
}
void operator delete[](void* ptr) noexcept
{
free(ptr);
}
#if (__cplusplus > 201103L)
void operator delete(void* ptr, size_t) noexcept
{
free(ptr);
}
void operator delete[](void* ptr, size_t) noexcept
{
free(ptr);
}
#endif // __cplusplus > 201103L