From eb5c0e5ab55d49b7581f84e8fc9c29a72998b5c8 Mon Sep 17 00:00:00 2001 From: Luna Date: Sat, 19 Jul 2025 04:03:39 +0200 Subject: [PATCH] adapted to changed error handling --- file_reader | 2 +- src/lily_png.cpp | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/file_reader b/file_reader index 5cdd4f8..1d37009 160000 --- a/file_reader +++ b/file_reader @@ -1 +1 @@ -Subproject commit 5cdd4f883523520c768a5a387d723a504b4922f8 +Subproject commit 1d370096d9b0767627566191be1e5526a5c90238 diff --git a/src/lily_png.cpp b/src/lily_png.cpp index f09bbf4..46b58d2 100644 --- a/src/lily_png.cpp +++ b/src/lily_png.cpp @@ -9,7 +9,13 @@ static void read_raw_data(const std::string &file_path, file_reader::buffer{0}; + }); + if (res.value() == 0) + throw std::runtime_error("Read failed"); if (memcmp(magic, file_magic, 8) != 0) { std::println("File is not a png!"); @@ -21,7 +27,7 @@ static void read_raw_data(const std::string &file_path, file_reader::buffer> chunk_header; std::get<1>(chunk_header).size = 4; auto ret = reader.read_from_tuple(chunk_header); - if (ret.second == file_reader::READ_FILE_ENDED || ret.second == file_reader::READ_INCOMPLETE) + if (!ret || ret.value() != 8) { std::println("Chunk incomplete!"); return ; @@ -34,7 +40,7 @@ static void read_raw_data(const std::string &file_path, file_reader::buffer, unsigned> dat; std::get<0>(dat).size = std::get<0>(chunk_header); ret = reader.read_from_tuple(dat); - if (ret.second == file_reader::READ_FILE_ENDED || ret.second == file_reader::READ_INCOMPLETE) + if (!ret || ret.value() != raw_data.size + 4) { std::println("Chunk incomplete!"); return ;