From e005dc33c31a2e701e1af3a0a3e5775cabbf1ddd Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Tue, 19 Jun 2018 17:33:32 +0000 Subject: Move fxcrt::{Byte,Wide}Strings with std::move(). Remove some string copies in barcode that were noticed whilst looking for moves. Change-Id: Ieda34d00f633576ba1f0dca283dcdabfb36f236c Reviewed-on: https://pdfium-review.googlesource.com/35410 Reviewed-by: dsinclair Reviewed-by: Tom Sepez Commit-Queue: Tom Sepez --- fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) (limited to 'fpdfsdk/fpdfxfa') diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp b/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp index faa2fa5e42..386ea95f5e 100644 --- a/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp +++ b/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp @@ -7,6 +7,7 @@ #include "fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.h" #include +#include #include "core/fpdfapi/parser/cpdf_array.h" #include "core/fpdfapi/parser/cpdf_stream_acc.h" @@ -848,27 +849,28 @@ bool CPDFXFA_DocEnvironment::MailToInfo(WideString& csURL, return false; auto pos = srcURL.Find(L'?'); - WideString tmp; - if (!pos.has_value()) { - pos = srcURL.Find(L'@'); - if (!pos.has_value()) - return false; - tmp = srcURL.Right(csURL.GetLength() - 7); - } else { - tmp = srcURL.Left(pos.value()); - tmp = tmp.Right(tmp.GetLength() - 7); - } - tmp.Trim(); + { + WideString tmp; + if (!pos.has_value()) { + pos = srcURL.Find(L'@'); + if (!pos.has_value()) + return false; - csToAddress = tmp; + tmp = srcURL.Right(csURL.GetLength() - 7); + } else { + tmp = srcURL.Left(pos.value()); + tmp = tmp.Right(tmp.GetLength() - 7); + } + tmp.Trim(); + csToAddress = std::move(tmp); + } srcURL = srcURL.Right(srcURL.GetLength() - (pos.value() + 1)); while (!srcURL.IsEmpty()) { srcURL.Trim(); pos = srcURL.Find(L'&'); - - tmp = (!pos.has_value()) ? srcURL : srcURL.Left(pos.value()); + WideString tmp = (!pos.has_value()) ? srcURL : srcURL.Left(pos.value()); tmp.Trim(); if (tmp.GetLength() >= 3 && tmp.Left(3).CompareNoCase(L"cc=") == 0) { tmp = tmp.Right(tmp.GetLength() - 3); -- cgit v1.2.3