blob: c278ab7b9abfdc4edd1fb0b32bf2ad5dfb58f3ea [file] [log] [blame]
Benoit Leforestier26e0f9a2018-10-23 18:20:51 +02001/*
2 * Copyright (c) 2018
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
Jan Van Winkel8a98a672019-11-14 00:23:33 +01007#include <stdlib.h>
Benoit Leforestier26e0f9a2018-10-23 18:20:51 +02008
Peter A. Bigot6ade7202019-12-13 04:27:44 -06009#if __cplusplus < 201103L
10#define NOEXCEPT
11#else /* >= C++11 */
12#define NOEXCEPT noexcept
13#endif /* __cplusplus */
14
Benoit Leforestier26e0f9a2018-10-23 18:20:51 +020015void* operator new(size_t size)
16{
Jan Van Winkel8a98a672019-11-14 00:23:33 +010017 return malloc(size);
Benoit Leforestier26e0f9a2018-10-23 18:20:51 +020018}
19
20void* operator new[](size_t size)
21{
Jan Van Winkel8a98a672019-11-14 00:23:33 +010022 return malloc(size);
Benoit Leforestier26e0f9a2018-10-23 18:20:51 +020023}
24
Peter A. Bigot6ade7202019-12-13 04:27:44 -060025void operator delete(void* ptr) NOEXCEPT
Benoit Leforestier26e0f9a2018-10-23 18:20:51 +020026{
Jan Van Winkel8a98a672019-11-14 00:23:33 +010027 free(ptr);
Benoit Leforestier26e0f9a2018-10-23 18:20:51 +020028}
29
Peter A. Bigot6ade7202019-12-13 04:27:44 -060030void operator delete[](void* ptr) NOEXCEPT
Benoit Leforestier26e0f9a2018-10-23 18:20:51 +020031{
Jan Van Winkel8a98a672019-11-14 00:23:33 +010032 free(ptr);
Benoit Leforestier26e0f9a2018-10-23 18:20:51 +020033}
34
Benoit Leforestier26e0f9a2018-10-23 18:20:51 +020035#if (__cplusplus > 201103L)
Peter A. Bigot6ade7202019-12-13 04:27:44 -060036void operator delete(void* ptr, size_t) NOEXCEPT
Benoit Leforestier26e0f9a2018-10-23 18:20:51 +020037{
Jan Van Winkel8a98a672019-11-14 00:23:33 +010038 free(ptr);
Benoit Leforestier26e0f9a2018-10-23 18:20:51 +020039}
40
Peter A. Bigot6ade7202019-12-13 04:27:44 -060041void operator delete[](void* ptr, size_t) NOEXCEPT
Benoit Leforestier26e0f9a2018-10-23 18:20:51 +020042{
Jan Van Winkel8a98a672019-11-14 00:23:33 +010043 free(ptr);
Benoit Leforestier26e0f9a2018-10-23 18:20:51 +020044}
45#endif // __cplusplus > 201103L