Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
overload_operator_new.cpp
Go to the documentation of this file.
1#include "../mem.hpp"
2
3#ifdef TRACY_MEMORY
4void* operator new(std::size_t count)
5{
6 // NOLINTBEGIN(cppcoreguidelines-no-malloc)
7 void* ptr = malloc(count);
8 // NOLINTEND(cppcoreguidelines-no-malloc)
9 TRACY_ALLOC(ptr, count);
10 return ptr;
11}
12
13void* operator new[](std::size_t count)
14{
15 // NOLINTBEGIN(cppcoreguidelines-no-malloc)
16 void* ptr = malloc(count);
17 // NOLINTEND(cppcoreguidelines-no-malloc)
18 TRACY_ALLOC(ptr, count);
19 return ptr;
20}
21
22void operator delete(void* ptr) noexcept
23{
24 TRACY_FREE(ptr);
25 // NOLINTBEGIN(cppcoreguidelines-no-malloc)
26 free(ptr);
27 // NOLINTEND(cppcoreguidelines-no-malloc)
28}
29
30void operator delete(void* ptr, std::size_t) noexcept
31{
32 TRACY_FREE(ptr);
33 // NOLINTBEGIN(cppcoreguidelines-no-malloc)
34 free(ptr);
35 // NOLINTEND(cppcoreguidelines-no-malloc)
36}
37
38void operator delete[](void* ptr) noexcept
39{
40 TRACY_FREE(ptr);
41 // NOLINTBEGIN(cppcoreguidelines-no-malloc)
42 free(ptr);
43 // NOLINTEND(cppcoreguidelines-no-malloc)
44}
45
46void operator delete[](void* ptr, std::size_t) noexcept
47{
48 TRACY_FREE(ptr);
49 // NOLINTBEGIN(cppcoreguidelines-no-malloc)
50 free(ptr);
51 // NOLINTEND(cppcoreguidelines-no-malloc)
52}
53
54// C++17 aligned new
55void* operator new(std::size_t size, std::align_val_t alignment)
56{
57 return aligned_alloc(static_cast<std::size_t>(alignment), size);
58}
59
60void operator delete(void* ptr, std::align_val_t) noexcept
61{
62 aligned_free(ptr);
63}
64
65#else
67#endif
#define TRACY_ALLOC(t, size)
Definition mem.hpp:14
#define TRACY_FREE(t)
Definition mem.hpp:15
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
void __ensure_object_file_not_empty_of_symbols()