util/*FifoBuffer: migrate from WritableBuffer to std::span
This commit is contained in:
committed by
Max Kellermann
parent
570755f05a
commit
bb7be9a4cd
@@ -44,10 +44,10 @@ bool
|
||||
BufferedOutputStream::AppendToBuffer(const void *data, std::size_t size) noexcept
|
||||
{
|
||||
auto r = buffer.Write();
|
||||
if (r.size < size)
|
||||
if (r.size() < size)
|
||||
return false;
|
||||
|
||||
memcpy(r.data, data, size);
|
||||
memcpy(r.data(), data, size);
|
||||
buffer.Append(size);
|
||||
return true;
|
||||
}
|
||||
@@ -88,10 +88,10 @@ BufferedOutputStream::Format(const char *fmt, ...)
|
||||
/* format into the buffer */
|
||||
std::va_list ap;
|
||||
va_start(ap, fmt);
|
||||
std::size_t size = vsnprintf((char *)r.data, r.size, fmt, ap);
|
||||
std::size_t size = vsnprintf((char *)r.data(), r.size(), fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
if (gcc_unlikely(size >= r.size)) {
|
||||
if (gcc_unlikely(size >= r.size())) {
|
||||
/* buffer was not large enough; flush it and try
|
||||
again */
|
||||
|
||||
@@ -99,20 +99,20 @@ BufferedOutputStream::Format(const char *fmt, ...)
|
||||
|
||||
r = buffer.Write();
|
||||
|
||||
if (gcc_unlikely(size >= r.size)) {
|
||||
if (gcc_unlikely(size >= r.size())) {
|
||||
/* still not enough space: grow the buffer and
|
||||
try again */
|
||||
r.size = size + 1;
|
||||
r.data = buffer.Write(r.size);
|
||||
++size;
|
||||
r = {buffer.Write(size), size};
|
||||
}
|
||||
|
||||
/* format into the new buffer */
|
||||
va_start(ap, fmt);
|
||||
size = vsnprintf((char *)r.data, r.size, fmt, ap);
|
||||
size = vsnprintf((char *)r.data(), r.size(), fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
/* this time, it must fit */
|
||||
assert(size < r.size);
|
||||
assert(size < r.size());
|
||||
}
|
||||
|
||||
buffer.Append(size);
|
||||
@@ -140,7 +140,7 @@ BufferedOutputStream::WriteWideToUTF8(const wchar_t *src,
|
||||
}
|
||||
|
||||
int length = WideCharToMultiByte(CP_UTF8, 0, src, src_length,
|
||||
(char *)r.data, r.size,
|
||||
(char *)r.data(), r.size(),
|
||||
nullptr, nullptr);
|
||||
if (length <= 0) {
|
||||
const auto error = GetLastError();
|
||||
@@ -173,6 +173,6 @@ BufferedOutputStream::Flush()
|
||||
if (r.empty())
|
||||
return;
|
||||
|
||||
os.Write(r.data, r.size);
|
||||
buffer.Consume(r.size);
|
||||
os.Write(r.data(), r.size());
|
||||
buffer.Consume(r.size());
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ BufferedReader::Fill(bool need_more)
|
||||
assert(!w.empty());
|
||||
}
|
||||
|
||||
std::size_t nbytes = reader.Read(w.data, w.size);
|
||||
std::size_t nbytes = reader.Read(w.data(), w.size());
|
||||
if (nbytes == 0) {
|
||||
eof = true;
|
||||
return !need_more;
|
||||
@@ -122,7 +122,7 @@ BufferedReader::ReadLine()
|
||||
/* terminate the last line */
|
||||
w[0] = 0;
|
||||
|
||||
char *line = buffer.Read().data;
|
||||
char *line = buffer.Read().data();
|
||||
buffer.Clear();
|
||||
++line_number;
|
||||
return line;
|
||||
|
||||
@@ -65,7 +65,7 @@ public:
|
||||
|
||||
[[gnu::pure]]
|
||||
std::span<std::byte> Read() const noexcept {
|
||||
return buffer.Read().ToVoid();
|
||||
return std::as_writable_bytes(buffer.Read());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user