Commit 1536a76071494306ec8661388356cf56ee53c86d
1 parent
986a253c
Refactor Pl_QPDFTokenizer::finish
Remove unnecessary use of shared pointers and avoid unnecessary string creation.
Showing
2 changed files
with
5 additions
and
8 deletions
libqpdf/Pl_QPDFTokenizer.cc
| @@ -36,20 +36,17 @@ void | @@ -36,20 +36,17 @@ void | ||
| 36 | Pl_QPDFTokenizer::finish() | 36 | Pl_QPDFTokenizer::finish() |
| 37 | { | 37 | { |
| 38 | m->buf.finish(); | 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 | while (true) { | 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 | m->filter->handleToken(token); | 43 | m->filter->handleToken(token); |
| 47 | if (token.getType() == QPDFTokenizer::tt_eof) { | 44 | if (token.getType() == QPDFTokenizer::tt_eof) { |
| 48 | break; | 45 | break; |
| 49 | } else if (token.isWord("ID")) { | 46 | } else if (token.isWord("ID")) { |
| 50 | // Read the space after the ID. | 47 | // Read the space after the ID. |
| 51 | char ch = ' '; | 48 | char ch = ' '; |
| 52 | - input->read(&ch, 1); | 49 | + input.read(&ch, 1); |
| 53 | m->filter->handleToken( | 50 | m->filter->handleToken( |
| 54 | // line-break | 51 | // line-break |
| 55 | QPDFTokenizer::Token(QPDFTokenizer::tt_space, std::string(1, ch))); | 52 | QPDFTokenizer::Token(QPDFTokenizer::tt_space, std::string(1, ch))); |
libqpdf/QPDFTokenizer.cc
| @@ -904,7 +904,7 @@ QPDFTokenizer::readToken( | @@ -904,7 +904,7 @@ QPDFTokenizer::readToken( | ||
| 904 | throw QPDFExc( | 904 | throw QPDFExc( |
| 905 | qpdf_e_damaged_pdf, | 905 | qpdf_e_damaged_pdf, |
| 906 | input.getName(), | 906 | input.getName(), |
| 907 | - context, | 907 | + context.empty() ? "offset " + std::to_string(input.getLastOffset()) : context, |
| 908 | input.getLastOffset(), | 908 | input.getLastOffset(), |
| 909 | token.getErrorMessage()); | 909 | token.getErrorMessage()); |
| 910 | } | 910 | } |