diff --git a/Userland/Libraries/LibPDF/Parser.cpp b/Userland/Libraries/LibPDF/Parser.cpp index a6d0dd7d0c..59682cf8f6 100644 --- a/Userland/Libraries/LibPDF/Parser.cpp +++ b/Userland/Libraries/LibPDF/Parser.cpp @@ -241,7 +241,7 @@ PDFErrorOr> Parser::parse_name() return make_object(builder.to_deprecated_string()); } -NonnullRefPtr Parser::parse_string() +PDFErrorOr> Parser::parse_string() { ScopeGuard guard([&] { m_reader.consume_whitespace(); }); @@ -249,10 +249,10 @@ NonnullRefPtr Parser::parse_string() bool is_binary_string; if (m_reader.matches('(')) { - string = parse_literal_string(); + string = TRY(parse_literal_string()); is_binary_string = false; } else { - string = parse_hex_string(); + string = TRY(parse_hex_string()); is_binary_string = true; } @@ -275,7 +275,7 @@ NonnullRefPtr Parser::parse_string() return string_object; } -DeprecatedString Parser::parse_literal_string() +PDFErrorOr Parser::parse_literal_string() { VERIFY(m_reader.consume('(')); StringBuilder builder; @@ -299,7 +299,7 @@ DeprecatedString Parser::parse_literal_string() } if (m_reader.done()) - return {}; + return error("out of data in string literal after \\"); auto ch = m_reader.consume(); switch (ch) { @@ -353,7 +353,7 @@ DeprecatedString Parser::parse_literal_string() return builder.to_deprecated_string(); } -DeprecatedString Parser::parse_hex_string() +PDFErrorOr Parser::parse_hex_string() { VERIFY(m_reader.consume('<')); diff --git a/Userland/Libraries/LibPDF/Parser.h b/Userland/Libraries/LibPDF/Parser.h index e616991783..99840cc773 100644 --- a/Userland/Libraries/LibPDF/Parser.h +++ b/Userland/Libraries/LibPDF/Parser.h @@ -49,9 +49,9 @@ public: PDFErrorOr> parse_indirect_value(); PDFErrorOr parse_number(); PDFErrorOr> parse_name(); - NonnullRefPtr parse_string(); - DeprecatedString parse_literal_string(); - DeprecatedString parse_hex_string(); + PDFErrorOr> parse_string(); + PDFErrorOr parse_literal_string(); + PDFErrorOr parse_hex_string(); PDFErrorOr> parse_array(); PDFErrorOr> parse_dict(); PDFErrorOr> parse_stream(NonnullRefPtr dict);