summaryrefslogtreecommitdiff
path: root/src/decompress_z.cc
diff options
context:
space:
mode:
authorJoel Klinghed <the_jk@spawned.biz>2025-09-22 23:38:21 +0200
committerJoel Klinghed <the_jk@spawned.biz>2025-09-22 23:38:21 +0200
commitce271f82f16ee89a18e7bfc9ed8eab7cbd6f37bc (patch)
tree3e568faf83ae750aa244cca87b55951c7401ef03 /src/decompress_z.cc
parent50348284f5d82ccfd65b0c803ba0ba895912ceff (diff)
Change io::Reader and company to return ReadError::Eof instead of 0.
It's debatable if Eof should be considered an error or not. But it is pretty clear it generally is a special response that needs special handling, so easier to keep with the unexpected lot. Also keeps better at higher abstraction levels, such as the line reader.
Diffstat (limited to 'src/decompress_z.cc')
-rw-r--r--src/decompress_z.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/decompress_z.cc b/src/decompress_z.cc
index 491eff7..64f055c 100644
--- a/src/decompress_z.cc
+++ b/src/decompress_z.cc
@@ -39,7 +39,7 @@ class DecompressReader : public io::Reader {
if (!initialized_) {
if (in_eof_ && buffer_->empty())
- return 0;
+ return std::unexpected(io::ReadError::Eof);
stream_.zalloc = Z_NULL;
stream_.zfree = Z_NULL;
@@ -89,8 +89,8 @@ class DecompressReader : public io::Reader {
auto got = reader_->read(wptr, avail);
if (got.has_value()) {
buffer_->commit(got.value());
- if (got.value() == 0)
- in_eof_ = true;
+ } else if (got.error() == io::ReadError::Eof) {
+ in_eof_ = true;
} else {
return got.error();
}