diff options
| author | Kelebek1 <eeeedddccc@hotmail.co.uk> | 2023-05-23 14:45:54 +0100 | 
|---|---|---|
| committer | Kelebek1 <eeeedddccc@hotmail.co.uk> | 2023-06-22 08:05:10 +0100 | 
| commit | 5da70f719703084482933e103e561cc98163f370 (patch) | |
| tree | 1926842ed2b90bf92b89cec6a314bb28c7287fe9 /src/common | |
| parent | e3122c5b468fd59b7eded5a3a7300643d05616bc (diff) | |
Remove memory allocations in some hot paths
Diffstat (limited to 'src/common')
| -rw-r--r-- | src/common/ring_buffer.h | 3 | ||||
| -rw-r--r-- | src/common/scratch_buffer.h | 9 | 
2 files changed, 11 insertions, 1 deletions
diff --git a/src/common/ring_buffer.h b/src/common/ring_buffer.h index 4c328ab44..416680d44 100644 --- a/src/common/ring_buffer.h +++ b/src/common/ring_buffer.h @@ -9,6 +9,7 @@  #include <cstddef>  #include <cstring>  #include <new> +#include <span>  #include <type_traits>  #include <vector> @@ -53,7 +54,7 @@ public:          return push_count;      } -    std::size_t Push(const std::vector<T>& input) { +    std::size_t Push(const std::span<T> input) {          return Push(input.data(), input.size());      } diff --git a/src/common/scratch_buffer.h b/src/common/scratch_buffer.h index a69a5a7af..6fe907953 100644 --- a/src/common/scratch_buffer.h +++ b/src/common/scratch_buffer.h @@ -3,6 +3,9 @@  #pragma once +#include <iterator> + +#include "common/concepts.h"  #include "common/make_unique_for_overwrite.h"  namespace Common { @@ -16,6 +19,12 @@ namespace Common {  template <typename T>  class ScratchBuffer {  public: +    using iterator = T*; +    using const_iterator = const T*; +    using value_type = T; +    using element_type = T; +    using iterator_category = std::contiguous_iterator_tag; +      ScratchBuffer() = default;      explicit ScratchBuffer(size_t initial_capacity)  | 
