diff options
| author | _ov4 <ov4@ov4.org> | 2026-11-13 20:27:47 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-11-13 20:27:47 +0000 |
| commit | 1660933d76b335048b7e9b3085d3e64f7af7b338 (patch) | |
| tree | d389918a84bb176bec5313b586642be2b61f2b3a /include | |
| parent | 111272567f63e4e5faf5a8e5b518c4e68d9d96bf (diff) | |
replace by malloc(), cleanup attribute, and removed unused .h
Diffstat (limited to 'include')
| -rw-r--r-- | include/memory.h | 65 |
1 files changed, 3 insertions, 62 deletions
diff --git a/include/memory.h b/include/memory.h index 6cf4536..15cdd11 100644 --- a/include/memory.h +++ b/include/memory.h @@ -1,67 +1,8 @@ #pragma once -#include <string> +#include <cstdio> -namespace ov4 +inline void cleanup_free_argv(char ***p) { - -template <typename T> -class T_raw_mem -{ - -public: - - void *_p; - std::size_t _len; - - explicit T_raw_mem(std::size_t size) - { - _p = operator new(size); - _len = size; - } - - ~T_raw_mem() - { - operator delete(_p); - } - - T *get() const noexcept - { - return static_cast<T*>(_p); - } - - std::size_t get_size() const noexcept - { - return len; - } - - // COPY is not allowed - T_raw_mem(const T_raw_mem&) = delete; - T_raw_mem& operator=(const T_raw_mem&) = delete; - - // MOVE constructor - T_raw_mem(T_raw_mem &&x) noexcept - : p(std::exchange(x._p, nullptr)), slen(std::exchange(x._len, 0)) - { /* empty */ } - - T_raw_mem& operator=(T_raw_mem &&x) noexcept - { - // if they are same - // release itself, which is not expected - if (this != &x) - { - // consider statement: y = x; - // release memory of y (if exist) - operator delete(_p); - - // and then move - _p = std::exchange(x._p, nullptr); - _len = std::exchange(x._len, 0); - } - - return *this; - } - -}; - + free(*p); } |
