From 29cd8f4f53dcad517ecba37978d6073daf43d819 Mon Sep 17 00:00:00 2001 From: m-holger Date: Fri, 27 Oct 2023 14:07:01 +0100 Subject: 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. --- libqpdf/QPDFParser.cc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'libqpdf/QPDFParser.cc') 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; -- cgit v1.2.3-54-g00ecf