diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-03-30 09:26:51 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-03-30 09:26:51 +0000 |
commit | 1e36ddc5124cab3cabad5e77ef588ba15d90cf03 (patch) | |
tree | 10b64376e2d0c9d95cb832bf12dbc3dd3b672e64 /vespalib | |
parent | fe03be062c4ce87aab521237f975b375e54b2906 (diff) |
Inline the cheap part of the Alloc destructor.
Diffstat (limited to 'vespalib')
-rw-r--r-- | vespalib/src/vespa/vespalib/util/alloc.cpp | 10 | ||||
-rw-r--r-- | vespalib/src/vespa/vespalib/util/alloc.h | 7 |
2 files changed, 10 insertions, 7 deletions
diff --git a/vespalib/src/vespa/vespalib/util/alloc.cpp b/vespalib/src/vespa/vespalib/util/alloc.cpp index d86d35be4c7..b6003f43792 100644 --- a/vespalib/src/vespa/vespalib/util/alloc.cpp +++ b/vespalib/src/vespa/vespalib/util/alloc.cpp @@ -473,12 +473,10 @@ Alloc::Alloc(const MemoryAllocator * allocator, size_t sz) noexcept { } -Alloc::~Alloc() -{ - if (_alloc.first != nullptr) { - _allocator->free(_alloc); - _alloc.first = nullptr; - } +void +Alloc::free() { + _allocator->free(_alloc); + _alloc.first = nullptr; } Alloc& diff --git a/vespalib/src/vespa/vespalib/util/alloc.h b/vespalib/src/vespa/vespalib/util/alloc.h index a1bb6af6514..f1cb0fb0337 100644 --- a/vespalib/src/vespa/vespalib/util/alloc.h +++ b/vespalib/src/vespa/vespalib/util/alloc.h @@ -43,7 +43,11 @@ public: } Alloc & operator=(Alloc && rhs) noexcept; Alloc() noexcept : _alloc(nullptr, 0), _allocator(nullptr) { } - ~Alloc(); + ~Alloc() { + if (_alloc.first != nullptr) { + free(); + } + } void swap(Alloc & rhs) noexcept { std::swap(_alloc, rhs._alloc); std::swap(_allocator, rhs._allocator); @@ -72,6 +76,7 @@ private: _alloc.second = 0; _allocator = nullptr; } + void free(); PtrAndSize _alloc; const MemoryAllocator * _allocator; }; |