Commit 1536a76071494306ec8661388356cf56ee53c86d

Authored by m-holger
1 parent 986a253c

Refactor Pl_QPDFTokenizer::finish

Remove unnecessary use of shared pointers and avoid unnecessary string
creation.
libqpdf/Pl_QPDFTokenizer.cc
... ... @@ -36,20 +36,17 @@ void
36 36 Pl_QPDFTokenizer::finish()
37 37 {
38 38 m->buf.finish();
39   - auto input = std::shared_ptr<InputSource>(
40   - // line-break
41   - new BufferInputSource("tokenizer data", m->buf.getBuffer(), true));
42   -
  39 + auto input = BufferInputSource("tokenizer data", m->buf.getBuffer(), true);
  40 + std::string empty;
43 41 while (true) {
44   - QPDFTokenizer::Token token =
45   - m->tokenizer.readToken(input, "offset " + std::to_string(input->tell()), true);
  42 + auto token = m->tokenizer.readToken(input, empty, true);
46 43 m->filter->handleToken(token);
47 44 if (token.getType() == QPDFTokenizer::tt_eof) {
48 45 break;
49 46 } else if (token.isWord("ID")) {
50 47 // Read the space after the ID.
51 48 char ch = ' ';
52   - input->read(&ch, 1);
  49 + input.read(&ch, 1);
53 50 m->filter->handleToken(
54 51 // line-break
55 52 QPDFTokenizer::Token(QPDFTokenizer::tt_space, std::string(1, ch)));
... ...
libqpdf/QPDFTokenizer.cc
... ... @@ -904,7 +904,7 @@ QPDFTokenizer::readToken(
904 904 throw QPDFExc(
905 905 qpdf_e_damaged_pdf,
906 906 input.getName(),
907   - context,
  907 + context.empty() ? "offset " + std::to_string(input.getLastOffset()) : context,
908 908 input.getLastOffset(),
909 909 token.getErrorMessage());
910 910 }
... ...