diff --git a/Userland/Libraries/LibPDF/Reader.h b/Userland/Libraries/LibPDF/Reader.h index 112752e271..a27694b64e 100644 --- a/Userland/Libraries/LibPDF/Reader.h +++ b/Userland/Libraries/LibPDF/Reader.h @@ -12,6 +12,7 @@ #include #include #include +#include namespace PDF { @@ -59,6 +60,16 @@ public: return value; } + template + PDFErrorOr try_read() + { + if (sizeof(T) + m_offset >= m_bytes.size()) { + auto message = DeprecatedString::formatted("Cannot read {} bytes at offset {} of ReadonlyBytes of size {}", sizeof(T), m_offset, m_bytes.size()); + return Error { Error::Type::Parse, message }; + } + return read(); + } + char peek(size_t shift = 0) const { auto offset = m_offset + shift * (m_forwards ? 1 : -1);