diff options
author | m-holger <m-holger@kubitscheck.org> | 2023-10-27 15:07:01 +0200 |
---|---|---|
committer | m-holger <m-holger@kubitscheck.org> | 2023-10-27 15:16:51 +0200 |
commit | 29cd8f4f53dcad517ecba37978d6073daf43d819 (patch) | |
tree | e0e4a266994a5c58098c815bdc7f597cd4d77142 /libqpdf | |
parent | 81823f4032caefd1050bccb207d315839c1c48db (diff) | |
download | qpdf-29cd8f4f53dcad517ecba37978d6073daf43d819.tar.zst |
Avoid unnecessary string copies in QPDFParser::parse
Fixes #864. QPDFTokenizer::getValue originally had a std::string_view
return type, which was changed to std::string without removing some
unnecessary string creation.
Diffstat (limited to 'libqpdf')
-rw-r--r-- | libqpdf/QPDFParser.cc | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/libqpdf/QPDFParser.cc b/libqpdf/QPDFParser.cc index 6dcbddb5..2716c34d 100644 --- a/libqpdf/QPDFParser.cc +++ b/libqpdf/QPDFParser.cc @@ -156,8 +156,7 @@ QPDFParser::parse(bool& empty, bool content_stream) break; case QPDFTokenizer::tt_integer: - object = QPDF_Integer::create( - QUtil::string_to_ll(std::string(tokenizer.getValue()).c_str())); + object = QPDF_Integer::create(QUtil::string_to_ll(tokenizer.getValue().c_str())); break; case QPDFTokenizer::tt_real: @@ -166,7 +165,7 @@ QPDFParser::parse(bool& empty, bool content_stream) case QPDFTokenizer::tt_name: { - auto name = tokenizer.getValue(); + auto const& name = tokenizer.getValue(); object = QPDF_Name::create(name); if (name == "/Contents") { @@ -179,7 +178,7 @@ QPDFParser::parse(bool& empty, bool content_stream) case QPDFTokenizer::tt_word: { - auto value = tokenizer.getValue(); + auto const& value = tokenizer.getValue(); auto size = olist.size(); if (content_stream) { object = QPDF_Operator::create(value); @@ -226,7 +225,7 @@ QPDFParser::parse(bool& empty, bool content_stream) case QPDFTokenizer::tt_string: { - auto val = tokenizer.getValue(); + auto const& val = tokenizer.getValue(); if (decrypter) { if (b_contents) { frame.contents_string = val; |