Skip to content

Commit

Permalink
util/ForeignFifoBuffer: pass std::span to constructor
Browse files Browse the repository at this point in the history
  • Loading branch information
MaxKellermann committed Nov 11, 2024
1 parent c9c5e84 commit a7d41a9
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 12 deletions.
4 changes: 2 additions & 2 deletions src/util/DynamicFifoBuffer.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public:
* Allocate a buffer with the given capacity.
*/
explicit DynamicFifoBuffer(size_type _capacity) noexcept
:ForeignFifoBuffer<T>(new T[_capacity], _capacity) {}
:ForeignFifoBuffer<T>(std::span{new T[_capacity], _capacity}) {}

~DynamicFifoBuffer() noexcept {
delete[] GetBuffer();
Expand All @@ -51,7 +51,7 @@ public:

T *old_data = GetBuffer();
T *new_data = new T[new_capacity];
ForeignFifoBuffer<T>::MoveBuffer(new_data, new_capacity);
ForeignFifoBuffer<T>::MoveBuffer({new_data, new_capacity});
delete[] old_data;
}

Expand Down
20 changes: 10 additions & 10 deletions src/util/ForeignFifoBuffer.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ public:
explicit constexpr ForeignFifoBuffer(std::nullptr_t) noexcept
:buffer() {}

constexpr ForeignFifoBuffer(T *_data, size_type _capacity) noexcept
:buffer(_data, _capacity) {}
explicit constexpr ForeignFifoBuffer(Range _buffer) noexcept
:buffer(_buffer) {}

constexpr ForeignFifoBuffer(ForeignFifoBuffer &&src) noexcept
:buffer(src.buffer), head(src.head), tail(src.tail) {
Expand Down Expand Up @@ -83,20 +83,20 @@ public:
head = tail = 0;
}

void SetBuffer(T *_data, size_type _capacity) noexcept {
assert(_data != nullptr);
assert(_capacity > 0);
void SetBuffer(Range _buffer) noexcept {
assert(_buffer.data() != nullptr);
assert(!_buffer.empty());

buffer = {_data, _capacity};
buffer = _buffer;
head = tail = 0;
}

void MoveBuffer(T *new_data, size_type new_capacity) noexcept {
void MoveBuffer(Range _buffer) noexcept {
const auto r = Read();
assert(new_capacity >= r.size());
std::move(r.begin(), r.end(), new_data);
assert(_buffer.size() >= r.size());
std::move(r.begin(), r.end(), _buffer.begin());

buffer = {new_data, new_capacity};
buffer = _buffer;
tail -= head;
head = 0;
}
Expand Down

0 comments on commit a7d41a9

Please sign in to comment.