From 033a66e9a5f859798cfc1920eb3129b40fdaa842 Mon Sep 17 00:00:00 2001 From: m-holger Date: Wed, 21 Sep 2022 20:21:17 +0100 Subject: Tune unparsing of hex strings in QPDF_String::unparse --- libqpdf/QPDF_String.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'libqpdf') diff --git a/libqpdf/QPDF_String.cc b/libqpdf/QPDF_String.cc index c6cb6c41..b7064f44 100644 --- a/libqpdf/QPDF_String.cc +++ b/libqpdf/QPDF_String.cc @@ -113,7 +113,14 @@ QPDF_String::unparse(bool force_binary) bool use_hexstring = force_binary || useHexString(); std::string result; if (use_hexstring) { - result += "<" + QUtil::hex_encode(this->val) + ">"; + static auto constexpr hexchars = "0123456789abcdef"; + result.reserve(2 * this->val.length() + 2); + result += '<'; + for (const char c: this->val) { + result += hexchars[static_cast(c) >> 4]; + result += hexchars[c & 0x0f]; + } + result += '>'; } else { result += "("; for (unsigned int i = 0; i < this->val.length(); ++i) { -- cgit v1.2.3-54-g00ecf