From 59a6d4b7bc9d36c3bbc043dc24e467181c942a63 Mon Sep 17 00:00:00 2001 From: Lucas CHOLLET Date: Sat, 11 Nov 2023 17:56:40 -0500 Subject: [PATCH] LibPDF: Factorize duplicated code in `Filter::decode_ascii85()` --- Userland/Libraries/LibPDF/Filter.cpp | 31 +++++++--------------------- 1 file changed, 8 insertions(+), 23 deletions(-) diff --git a/Userland/Libraries/LibPDF/Filter.cpp b/Userland/Libraries/LibPDF/Filter.cpp index 93b725182f..5d4377097b 100644 --- a/Userland/Libraries/LibPDF/Filter.cpp +++ b/Userland/Libraries/LibPDF/Filter.cpp @@ -114,33 +114,18 @@ PDFErrorOr Filter::decode_ascii85(ReadonlyBytes bytes) u32 number = 0; - if (byte_index + 5 >= bytes.size()) { - auto to_write = bytes.size() - byte_index; - for (int i = 0; i < 5; i++) { - auto byte = byte_index >= bytes.size() ? 'u' : bytes[byte_index++]; - if (Reader::is_whitespace(byte)) { - i--; - continue; - } - number = number * 85 + byte - 33; - } + auto const to_write = byte_index + 5 >= bytes.size() ? bytes.size() - byte_index : 5; - for (size_t i = 0; i < to_write - 1; i++) - buffer.append(reinterpret_cast(&number)[3 - i]); - - break; - } else { - for (int i = 0; i < 5; i++) { - auto byte = bytes[byte_index++]; - if (Reader::is_whitespace(byte)) { - i--; - continue; - } - number = number * 85 + byte - 33; + for (int i = 0; i < 5; i++) { + auto byte = byte_index >= bytes.size() ? 'u' : bytes[byte_index++]; + if (Reader::is_whitespace(byte)) { + i--; + continue; } + number = number * 85 + byte - 33; } - for (int i = 0; i < 4; i++) + for (size_t i = 0; i < to_write - 1; i++) buffer.append(reinterpret_cast(&number)[3 - i]); }