@@ -241,18 +241,18 @@ PDFErrorOr<NonnullRefPtr<NameObject>> Parser::parse_name()
241
241
return make_object<NameObject>(builder.to_deprecated_string ());
242
242
}
243
243
244
- NonnullRefPtr<StringObject> Parser::parse_string ()
244
+ PDFErrorOr< NonnullRefPtr<StringObject> > Parser::parse_string ()
245
245
{
246
246
ScopeGuard guard ([&] { m_reader.consume_whitespace (); });
247
247
248
248
DeprecatedString string;
249
249
bool is_binary_string;
250
250
251
251
if (m_reader.matches (' (' )) {
252
- string = parse_literal_string ();
252
+ string = TRY ( parse_literal_string () );
253
253
is_binary_string = false ;
254
254
} else {
255
- string = parse_hex_string ();
255
+ string = TRY ( parse_hex_string () );
256
256
is_binary_string = true ;
257
257
}
258
258
@@ -275,7 +275,7 @@ NonnullRefPtr<StringObject> Parser::parse_string()
275
275
return string_object;
276
276
}
277
277
278
- DeprecatedString Parser::parse_literal_string ()
278
+ PDFErrorOr< DeprecatedString> Parser::parse_literal_string ()
279
279
{
280
280
VERIFY (m_reader.consume (' (' ));
281
281
StringBuilder builder;
@@ -299,7 +299,7 @@ DeprecatedString Parser::parse_literal_string()
299
299
}
300
300
301
301
if (m_reader.done ())
302
- return {} ;
302
+ return error ( " out of data in string literal after \\ " ) ;
303
303
304
304
auto ch = m_reader.consume ();
305
305
switch (ch) {
@@ -353,7 +353,7 @@ DeprecatedString Parser::parse_literal_string()
353
353
return builder.to_deprecated_string ();
354
354
}
355
355
356
- DeprecatedString Parser::parse_hex_string ()
356
+ PDFErrorOr< DeprecatedString> Parser::parse_hex_string ()
357
357
{
358
358
VERIFY (m_reader.consume (' <' ));
359
359
0 commit comments