diff options
| author | levlam <levlam@telegram.org> | 2025-02-16 11:35:06 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2025-02-16 11:35:06 +0300 |
| commit | 83e498b304c0d319e9e296b13a5e11baddcc704a (patch) | |
| tree | 717a532afdac28f70a18db90ddaf9dfe0abf6fbe /memprof | |
| parent | bff0e2d771525d41050d8c15c59a182483f757ec (diff) | |
Update memprof to C++17.
Diffstat (limited to 'memprof')
| -rw-r--r-- | memprof/memprof.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/memprof/memprof.cpp b/memprof/memprof.cpp index 92c20f441..8870aa7c6 100644 --- a/memprof/memprof.cpp +++ b/memprof/memprof.cpp @@ -291,22 +291,25 @@ void *memalign(std::size_t alignment, std::size_t size) { } } -// c++14 guarantees that it is enough to override these two operators. +// c++17 guarantees that it is enough to override these 4 operators void *operator new(std::size_t count) { return malloc_with_frame(count, get_backtrace()); } void operator delete(void *ptr) noexcept(true) { free(ptr); } +void *operator new(std::size_t count, std::align_val_t al) { + return memalign(static_cast<std::size_t>(al), count); +} +void operator delete(void *ptr, std::align_val_t al) noexcept { + free(ptr); +} + // because of gcc warning: the program should also define 'void operator delete(void*, std::size_t)' void operator delete(void *ptr, std::size_t) noexcept(true) { free(ptr); } -// c++17 -// void *operator new(std::size_t count, std::align_val_t al); -// void operator delete(void *ptr, std::align_val_t al); - #else bool is_memprof_on() { return false; |
