1 /* 2 * Copyright (c) 2020 Raspberry Pi (Trading) Ltd. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #if !PICO_CXX_ENABLE_EXCEPTIONS 8 // Override the standard allocators to use regular malloc/free 9 10 #if !PICO_CXX_DISABLE_ALLOCATION_OVERRIDES // Let user override 11 #include <cstdlib> 12 #include "pico.h" 13 operator new(std::size_t n)14void *operator new(std::size_t n) { 15 return std::malloc(n); 16 } 17 operator new[](std::size_t n)18void *operator new[](std::size_t n) { 19 return std::malloc(n); 20 } 21 operator delete(void * p)22void operator delete(void *p) { std::free(p); } 23 operator delete[](void * p)24void operator delete[](void *p) noexcept { std::free(p); } 25 26 #if __cpp_sized_deallocation 27 operator delete(void * p,__unused std::size_t n)28void operator delete(void *p, __unused std::size_t n) noexcept { std::free(p); } 29 operator delete[](void * p,__unused std::size_t n)30void operator delete[](void *p, __unused std::size_t n) noexcept { std::free(p); } 31 32 #endif 33 34 #endif 35 36 #endif 37