summaryrefslogtreecommitdiff
path: root/src/decompress_lzma.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_lzma.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_lzma.cc')
-rw-r--r--src/decompress_lzma.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/decompress_lzma.cc b/src/decompress_lzma.cc
index 6ba2976..1946075 100644
--- a/src/decompress_lzma.cc
+++ b/src/decompress_lzma.cc
@@ -38,7 +38,7 @@ class XzReader : public io::Reader {
if (!initialized_) {
if (in_eof_ && buffer_->empty())
- return 0;
+ return std::unexpected(io::ReadError::Eof);
lzma_mt options;
memset(&options, 0, sizeof(options));
@@ -89,8 +89,8 @@ class XzReader : public io::Reader {
auto got = reader_->read(wptr, stream_.avail_in);
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();
}