Merge pull request #6559

15538f7 ByteSlice: Fix persisting ptr to std::moved SSO buffer (Doy-lee)
This commit is contained in:
luigi1111 2020-07-08 17:07:50 -05:00
commit 35e2520115
No known key found for this signature in database
GPG key ID: F4ACA0183641E010
2 changed files with 27 additions and 1 deletions

View file

@ -133,10 +133,13 @@ namespace epee
template<typename T>
byte_slice::byte_slice(const adapt_buffer, T&& buffer)
: storage_(nullptr), portion_(to_byte_span(to_span(buffer)))
: storage_(nullptr), portion_(nullptr)
{
if (!buffer.empty())
{
storage_ = allocate_slice<adapted_byte_slice<T>>(0, std::move(buffer));
portion_ = to_byte_span(to_span(static_cast<adapted_byte_slice<T> *>(storage_.get())->buffer));
}
}
byte_slice::byte_slice(std::initializer_list<span<const std::uint8_t>> sources)