summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2018-06-19 17:33:32 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-06-19 17:33:32 +0000
commite005dc33c31a2e701e1af3a0a3e5775cabbf1ddd (patch)
tree6cf7623219078464910ee438311e24121c8af2a0
parented1c58049f0c164969946b6ad0ff06d952ab1949 (diff)
downloadpdfium-chromium/3466.tar.xz
Move fxcrt::{Byte,Wide}Strings with std::move().chromium/3466
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 <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
-rw-r--r--core/fpdfapi/font/cpdf_tounicodemap.cpp4
-rw-r--r--core/fpdfapi/page/cpdf_contentmark.cpp8
-rw-r--r--core/fpdfapi/page/cpdf_contentmark.h6
-rw-r--r--core/fpdfapi/page/cpdf_streamcontentparser.cpp18
-rw-r--r--core/fpdfapi/parser/fpdf_parser_decode.cpp2
-rw-r--r--core/fpdfdoc/cpdf_formcontrol.cpp3
-rw-r--r--core/fpdfdoc/cpdf_formfield.cpp2
-rw-r--r--core/fpdfdoc/cpdf_interform.cpp7
-rw-r--r--core/fpdfdoc/cpdf_structelement.cpp4
-rw-r--r--fpdfsdk/cpdfsdk_interform.cpp5
-rw-r--r--fpdfsdk/fpdf_flatten.cpp2
-rw-r--r--fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp30
-rw-r--r--fxbarcode/cbc_codabar.cpp12
-rw-r--r--fxbarcode/cbc_code128.cpp11
-rw-r--r--fxbarcode/cbc_code39.cpp9
-rw-r--r--fxbarcode/cbc_ean13.cpp11
-rw-r--r--fxbarcode/cbc_ean8.cpp11
-rw-r--r--fxbarcode/cbc_upca.cpp12
-rw-r--r--fxbarcode/datamatrix/BC_DefaultPlacement.cpp12
-rw-r--r--fxbarcode/datamatrix/BC_EncoderContext.cpp4
-rw-r--r--fxjs/cfxjse_formcalc_context.cpp8
-rw-r--r--fxjs/cfxjse_resolveprocessor.cpp20
-rw-r--r--fxjs/cjs_globaldata.cpp31
-rw-r--r--fxjs/cjs_globaldata.h16
-rw-r--r--fxjs/cjs_publicmethods.cpp8
-rw-r--r--fxjs/xfa/cjx_layoutpseudomodel.cpp4
-rw-r--r--fxjs/xfa/cjx_object.cpp4
-rw-r--r--xfa/fgas/crt/cfgas_formatstring.cpp20
-rw-r--r--xfa/fwl/cfwl_listbox.cpp2
-rw-r--r--xfa/fxfa/cxfa_ffcombobox.cpp2
-rw-r--r--xfa/fxfa/cxfa_fftextedit.cpp2
-rw-r--r--xfa/fxfa/parser/cxfa_document_parser.cpp4
-rw-r--r--xfa/fxfa/parser/cxfa_localevalue.cpp3
-rw-r--r--xfa/fxfa/parser/cxfa_nodehelper.cpp7
34 files changed, 139 insertions, 165 deletions
diff --git a/core/fpdfapi/font/cpdf_tounicodemap.cpp b/core/fpdfapi/font/cpdf_tounicodemap.cpp
index 7b5936c31e..e8917310a2 100644
--- a/core/fpdfapi/font/cpdf_tounicodemap.cpp
+++ b/core/fpdfapi/font/cpdf_tounicodemap.cpp
@@ -6,6 +6,8 @@
#include "core/fpdfapi/font/cpdf_tounicodemap.h"
+#include <utility>
+
#include "core/fpdfapi/cpdf_modulemgr.h"
#include "core/fpdfapi/font/cpdf_cid2unicodemap.h"
#include "core/fpdfapi/page/cpdf_pagemodule.h"
@@ -205,7 +207,7 @@ void CPDF_ToUnicodeMap::Load(const CPDF_Stream* pStream) {
m_Map[code] = GetUnicode();
m_MultiCharBuf.AppendChar(retcode.GetLength());
m_MultiCharBuf << retcode;
- destcode = retcode;
+ destcode = std::move(retcode);
}
}
}
diff --git a/core/fpdfapi/page/cpdf_contentmark.cpp b/core/fpdfapi/page/cpdf_contentmark.cpp
index e17a30560f..deddf3cc3e 100644
--- a/core/fpdfapi/page/cpdf_contentmark.cpp
+++ b/core/fpdfapi/page/cpdf_contentmark.cpp
@@ -31,10 +31,10 @@ int CPDF_ContentMark::GetMarkedContentID() const {
return pData ? pData->GetMarkedContentID() : -1;
}
-void CPDF_ContentMark::AddMark(const ByteString& name,
+void CPDF_ContentMark::AddMark(ByteString name,
const CPDF_Dictionary* pDict,
bool bDirect) {
- m_Ref.GetPrivateCopy()->AddMark(name, pDict, bDirect);
+ m_Ref.GetPrivateCopy()->AddMark(std::move(name), pDict, bDirect);
}
void CPDF_ContentMark::DeleteLastMark() {
@@ -68,11 +68,11 @@ int CPDF_ContentMark::MarkData::GetMarkedContentID() const {
return -1;
}
-void CPDF_ContentMark::MarkData::AddMark(const ByteString& name,
+void CPDF_ContentMark::MarkData::AddMark(ByteString name,
const CPDF_Dictionary* pDict,
bool bDirect) {
CPDF_ContentMarkItem item;
- item.SetName(name);
+ item.SetName(std::move(name));
if (pDict) {
if (bDirect)
item.SetDirectDict(ToDictionary(pDict->Clone()));
diff --git a/core/fpdfapi/page/cpdf_contentmark.h b/core/fpdfapi/page/cpdf_contentmark.h
index 1d8b9e2515..494c20630b 100644
--- a/core/fpdfapi/page/cpdf_contentmark.h
+++ b/core/fpdfapi/page/cpdf_contentmark.h
@@ -25,9 +25,7 @@ class CPDF_ContentMark {
size_t CountItems() const;
const CPDF_ContentMarkItem& GetItem(size_t i) const;
- void AddMark(const ByteString& name,
- const CPDF_Dictionary* pDict,
- bool bDirect);
+ void AddMark(ByteString name, const CPDF_Dictionary* pDict, bool bDirect);
void DeleteLastMark();
bool HasRef() const { return !!m_Ref; }
@@ -43,7 +41,7 @@ class CPDF_ContentMark {
const CPDF_ContentMarkItem& GetItem(size_t index) const;
int GetMarkedContentID() const;
- void AddMark(const ByteString& name,
+ void AddMark(ByteString name,
const CPDF_Dictionary* pDict,
bool bDictNeedClone);
void DeleteLastMark();
diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.cpp b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
index 0cc81f1e9b..2fbb73b6b2 100644
--- a/core/fpdfapi/page/cpdf_streamcontentparser.cpp
+++ b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
@@ -184,7 +184,7 @@ void ReplaceAbbr(CPDF_Object* pObj) {
if (!fullname.IsEmpty()) {
AbbrReplacementOp op;
op.is_replace_key = true;
- op.key = key;
+ op.key = std::move(key);
op.replacement = fullname;
replacements.push_back(op);
key = fullname;
@@ -606,9 +606,8 @@ void CPDF_StreamContentParser::Handle_BeginMarkedContent_Dictionary() {
return;
bDirect = false;
}
- if (const CPDF_Dictionary* pDict = pProperty->AsDictionary()) {
- m_CurContentMark.AddMark(tag, pDict, bDirect);
- }
+ if (const CPDF_Dictionary* pDict = pProperty->AsDictionary())
+ m_CurContentMark.AddMark(std::move(tag), pDict, bDirect);
}
void CPDF_StreamContentParser::Handle_BeginImage() {
@@ -755,20 +754,23 @@ void CPDF_StreamContentParser::Handle_ExecuteXObject() {
if (pXObject->GetDict())
type = pXObject->GetDict()->GetStringFor("Subtype");
+ if (type == "Form") {
+ AddForm(pXObject);
+ return;
+ }
+
if (type == "Image") {
CPDF_ImageObject* pObj = pXObject->IsInline()
? AddImage(std::unique_ptr<CPDF_Stream>(
ToStream(pXObject->Clone())))
: AddImage(pXObject->GetObjNum());
- m_LastImageName = name;
+ m_LastImageName = std::move(name);
if (pObj) {
m_pLastImage = pObj->GetImage();
if (m_pLastImage->IsMask())
m_pObjectHolder->AddImageMaskBoundingBox(pObj->GetRect());
}
- } else if (type == "Form") {
- AddForm(pXObject);
}
}
@@ -1307,7 +1309,7 @@ void CPDF_StreamContentParser::Handle_ShowText_Positioning() {
ByteString str = pObj->GetString();
if (str.IsEmpty())
continue;
- strs[iSegment] = str;
+ strs[iSegment] = std::move(str);
kernings[iSegment++] = 0;
} else {
float num = pObj->GetNumber();
diff --git a/core/fpdfapi/parser/fpdf_parser_decode.cpp b/core/fpdfapi/parser/fpdf_parser_decode.cpp
index aafb812234..0ca9b4eab2 100644
--- a/core/fpdfapi/parser/fpdf_parser_decode.cpp
+++ b/core/fpdfapi/parser/fpdf_parser_decode.cpp
@@ -404,7 +404,7 @@ bool PDF_DataDecode(const uint8_t* src_buf,
decoder = "DCTDecode";
else if (decoder == "CCF")
decoder = "CCITTFaxDecode";
- *ImageEncoding = decoder;
+ *ImageEncoding = std::move(decoder);
*pImageParms = pParam;
*dest_buf = last_buf;
*dest_size = last_size;
diff --git a/core/fpdfdoc/cpdf_formcontrol.cpp b/core/fpdfdoc/cpdf_formcontrol.cpp
index 2100d4ecee..a80b0294c1 100644
--- a/core/fpdfdoc/cpdf_formcontrol.cpp
+++ b/core/fpdfdoc/cpdf_formcontrol.cpp
@@ -149,11 +149,10 @@ bool CPDF_FormControl::IsDefaultChecked() const {
void CPDF_FormControl::CheckControl(bool bChecked) {
ASSERT(GetType() == CPDF_FormField::CheckBox ||
GetType() == CPDF_FormField::RadioButton);
- ByteString csOn = GetOnStateName();
ByteString csOldAS = m_pWidgetDict->GetStringFor("AS", "Off");
ByteString csAS = "Off";
if (bChecked)
- csAS = csOn;
+ csAS = GetOnStateName();
if (csOldAS == csAS)
return;
m_pWidgetDict->SetNewFor<CPDF_Name>("AS", csAS);
diff --git a/core/fpdfdoc/cpdf_formfield.cpp b/core/fpdfdoc/cpdf_formfield.cpp
index 8dcc9e68b6..2f05ad8732 100644
--- a/core/fpdfdoc/cpdf_formfield.cpp
+++ b/core/fpdfdoc/cpdf_formfield.cpp
@@ -92,7 +92,7 @@ WideString FPDF_GetFullName(CPDF_Dictionary* pFieldDict) {
WideString short_name = pLevel->GetUnicodeTextFor("T");
if (!short_name.IsEmpty()) {
if (full_name.IsEmpty())
- full_name = short_name;
+ full_name = std::move(short_name);
else
full_name = short_name + L"." + full_name;
}
diff --git a/core/fpdfdoc/cpdf_interform.cpp b/core/fpdfdoc/cpdf_interform.cpp
index de3770901b..b18310cfde 100644
--- a/core/fpdfdoc/cpdf_interform.cpp
+++ b/core/fpdfdoc/cpdf_interform.cpp
@@ -206,8 +206,7 @@ bool FindFont(CPDF_Dictionary* pFormDict,
if (!pFont)
continue;
- ByteString csBaseFont;
- csBaseFont = pFont->GetBaseFont();
+ ByteString csBaseFont = pFont->GetBaseFont();
csBaseFont.Remove(' ');
if (csBaseFont == csFontName) {
*csNameTag = csKey;
@@ -228,7 +227,7 @@ void AddFont(CPDF_Dictionary*& pFormDict,
ByteString csTag;
if (FindFont(pFormDict, pFont, &csTag)) {
- *csNameTag = csTag;
+ *csNameTag = std::move(csTag);
return;
}
if (!pFormDict)
@@ -261,7 +260,7 @@ CPDF_Font* AddNativeFont(CPDF_Dictionary*& pFormDict,
ByteString csTemp;
CPDF_Font* pFont = GetNativeFont(pFormDict, pDocument, charSet, &csTemp);
if (pFont) {
- *csNameTag = csTemp;
+ *csNameTag = std::move(csTemp);
return pFont;
}
ByteString csFontName = CPDF_InterForm::GetNativeFont(charSet, nullptr);
diff --git a/core/fpdfdoc/cpdf_structelement.cpp b/core/fpdfdoc/cpdf_structelement.cpp
index 24c028fb61..d8fc0d88ba 100644
--- a/core/fpdfdoc/cpdf_structelement.cpp
+++ b/core/fpdfdoc/cpdf_structelement.cpp
@@ -6,6 +6,8 @@
#include "core/fpdfdoc/cpdf_structelement.h"
+#include <utility>
+
#include "core/fpdfapi/parser/cpdf_array.h"
#include "core/fpdfapi/parser/cpdf_dictionary.h"
#include "core/fpdfapi/parser/cpdf_name.h"
@@ -36,7 +38,7 @@ CPDF_StructElement::CPDF_StructElement(CPDF_StructTree* pTree,
if (pTree->GetRoleMap()) {
ByteString mapped = pTree->GetRoleMap()->GetStringFor(m_Type);
if (!mapped.IsEmpty())
- m_Type = mapped;
+ m_Type = std::move(mapped);
}
LoadKids(pDict);
}
diff --git a/fpdfsdk/cpdfsdk_interform.cpp b/fpdfsdk/cpdfsdk_interform.cpp
index 1e247465c8..379a8b999d 100644
--- a/fpdfsdk/cpdfsdk_interform.cpp
+++ b/fpdfsdk/cpdfsdk_interform.cpp
@@ -10,6 +10,7 @@
#include <memory>
#include <sstream>
#include <string>
+#include <utility>
#include <vector>
#include "core/fpdfapi/page/cpdf_page.h"
@@ -322,13 +323,11 @@ WideString CPDFSDK_InterForm::OnFormat(CPDF_FormField* pFormField,
WideString script = action.GetJavaScript();
if (!script.IsEmpty()) {
WideString Value = sValue;
-
IJS_Runtime::ScopedEventContext pContext(pRuntime);
pContext->OnField_Format(pFormField, Value, true);
-
Optional<IJS_Runtime::JS_Error> err = pContext->RunScript(script);
if (!err) {
- sValue = Value;
+ sValue = std::move(Value);
bFormatted = true;
}
}
diff --git a/fpdfsdk/fpdf_flatten.cpp b/fpdfsdk/fpdf_flatten.cpp
index 4b9e1f8a9d..b9e29be8b4 100644
--- a/fpdfsdk/fpdf_flatten.cpp
+++ b/fpdfsdk/fpdf_flatten.cpp
@@ -299,7 +299,7 @@ FPDF_EXPORT int FPDF_CALLCONV FPDFPage_Flatten(FPDF_PAGE page, int nFlag) {
while (i < INT_MAX) {
ByteString sKey = ByteString::Format("FFT%d", i);
if (!pPageXObject->KeyExist(sKey)) {
- key = sKey;
+ key = std::move(sKey);
break;
}
++i;
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 <memory>
+#include <utility>
#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);
diff --git a/fxbarcode/cbc_codabar.cpp b/fxbarcode/cbc_codabar.cpp
index 0795ff295d..b32eafc376 100644
--- a/fxbarcode/cbc_codabar.cpp
+++ b/fxbarcode/cbc_codabar.cpp
@@ -54,17 +54,13 @@ bool CBC_Codabar::Encode(const WideStringView& contents) {
BCFORMAT format = BCFORMAT_CODABAR;
int32_t outWidth = 0;
int32_t outHeight = 0;
- WideString filtercontents = GetOnedCodaBarWriter()->FilterContents(contents);
- ByteString byteString = filtercontents.UTF8Encode();
- m_renderContents = filtercontents;
+ m_renderContents = GetOnedCodaBarWriter()->FilterContents(contents);
+ ByteString byteString = m_renderContents.UTF8Encode();
auto* pWriter = GetOnedCodaBarWriter();
std::unique_ptr<uint8_t, FxFreeDeleter> data(
pWriter->Encode(byteString, format, outWidth, outHeight));
- if (!data)
- return false;
-
- return pWriter->RenderResult(filtercontents.AsStringView(), data.get(),
- outWidth);
+ return data && pWriter->RenderResult(m_renderContents.AsStringView(),
+ data.get(), outWidth);
}
bool CBC_Codabar::RenderDevice(CFX_RenderDevice* device,
diff --git a/fxbarcode/cbc_code128.cpp b/fxbarcode/cbc_code128.cpp
index 7ba623542d..8e83e2251c 100644
--- a/fxbarcode/cbc_code128.cpp
+++ b/fxbarcode/cbc_code128.cpp
@@ -47,15 +47,12 @@ bool CBC_Code128::Encode(const WideStringView& contents) {
if (contents.GetLength() % 2 && pWriter->GetType() == BC_CODE128_C)
content += '0';
- WideString encodeContents = pWriter->FilterContents(content.AsStringView());
- m_renderContents = encodeContents;
- ByteString byteString = encodeContents.UTF8Encode();
+ m_renderContents = pWriter->FilterContents(content.AsStringView());
+ ByteString byteString = m_renderContents.UTF8Encode();
std::unique_ptr<uint8_t, FxFreeDeleter> data(
pWriter->Encode(byteString, format, outWidth, outHeight));
- if (!data)
- return false;
- return pWriter->RenderResult(encodeContents.AsStringView(), data.get(),
- outWidth);
+ return data && pWriter->RenderResult(m_renderContents.AsStringView(),
+ data.get(), outWidth);
}
bool CBC_Code128::RenderDevice(CFX_RenderDevice* device,
diff --git a/fxbarcode/cbc_code39.cpp b/fxbarcode/cbc_code39.cpp
index 9715c25828..52859e14c5 100644
--- a/fxbarcode/cbc_code39.cpp
+++ b/fxbarcode/cbc_code39.cpp
@@ -40,15 +40,12 @@ bool CBC_Code39::Encode(const WideStringView& contents) {
int32_t outHeight = 0;
auto* pWriter = GetOnedCode39Writer();
WideString filtercontents = pWriter->FilterContents(contents);
- WideString renderContents = pWriter->RenderTextContents(contents);
- m_renderContents = renderContents;
+ m_renderContents = pWriter->RenderTextContents(contents);
ByteString byteString = filtercontents.UTF8Encode();
std::unique_ptr<uint8_t, FxFreeDeleter> data(
pWriter->Encode(byteString, format, outWidth, outHeight));
- if (!data)
- return false;
- return pWriter->RenderResult(renderContents.AsStringView(), data.get(),
- outWidth);
+ return data && pWriter->RenderResult(m_renderContents.AsStringView(),
+ data.get(), outWidth);
}
bool CBC_Code39::RenderDevice(CFX_RenderDevice* device,
diff --git a/fxbarcode/cbc_ean13.cpp b/fxbarcode/cbc_ean13.cpp
index 16725323f4..a111fdbfb6 100644
--- a/fxbarcode/cbc_ean13.cpp
+++ b/fxbarcode/cbc_ean13.cpp
@@ -57,16 +57,13 @@ bool CBC_EAN13::Encode(const WideStringView& contents) {
BCFORMAT format = BCFORMAT_EAN_13;
int32_t outWidth = 0;
int32_t outHeight = 0;
- WideString encodeContents = Preprocess(contents);
- ByteString byteString = encodeContents.UTF8Encode();
- m_renderContents = encodeContents;
+ m_renderContents = Preprocess(contents);
+ ByteString byteString = m_renderContents.UTF8Encode();
auto* pWriter = GetOnedEAN13Writer();
std::unique_ptr<uint8_t, FxFreeDeleter> data(
pWriter->Encode(byteString, format, outWidth, outHeight));
- if (!data)
- return false;
- return pWriter->RenderResult(encodeContents.AsStringView(), data.get(),
- outWidth);
+ return data && pWriter->RenderResult(m_renderContents.AsStringView(),
+ data.get(), outWidth);
}
bool CBC_EAN13::RenderDevice(CFX_RenderDevice* device,
diff --git a/fxbarcode/cbc_ean8.cpp b/fxbarcode/cbc_ean8.cpp
index 796f3a526b..ce071af2ce 100644
--- a/fxbarcode/cbc_ean8.cpp
+++ b/fxbarcode/cbc_ean8.cpp
@@ -55,16 +55,13 @@ bool CBC_EAN8::Encode(const WideStringView& contents) {
BCFORMAT format = BCFORMAT_EAN_8;
int32_t outWidth = 0;
int32_t outHeight = 0;
- WideString encodeContents = Preprocess(contents);
- ByteString byteString = encodeContents.UTF8Encode();
- m_renderContents = encodeContents;
+ m_renderContents = Preprocess(contents);
+ ByteString byteString = m_renderContents.UTF8Encode();
auto* pWriter = GetOnedEAN8Writer();
std::unique_ptr<uint8_t, FxFreeDeleter> data(
pWriter->Encode(byteString, format, outWidth, outHeight));
- if (!data)
- return false;
- return pWriter->RenderResult(encodeContents.AsStringView(), data.get(),
- outWidth);
+ return data && pWriter->RenderResult(m_renderContents.AsStringView(),
+ data.get(), outWidth);
}
bool CBC_EAN8::RenderDevice(CFX_RenderDevice* device,
diff --git a/fxbarcode/cbc_upca.cpp b/fxbarcode/cbc_upca.cpp
index 69cedce580..834eecf1ec 100644
--- a/fxbarcode/cbc_upca.cpp
+++ b/fxbarcode/cbc_upca.cpp
@@ -56,18 +56,14 @@ bool CBC_UPCA::Encode(const WideStringView& contents) {
BCFORMAT format = BCFORMAT_UPC_A;
int32_t outWidth = 0;
int32_t outHeight = 0;
- WideString encodeContents = Preprocess(contents);
- ByteString byteString = encodeContents.UTF8Encode();
- m_renderContents = encodeContents;
-
+ m_renderContents = Preprocess(contents);
+ ByteString byteString = m_renderContents.UTF8Encode();
CBC_OnedUPCAWriter* pWriter = GetOnedUPCAWriter();
pWriter->Init();
std::unique_ptr<uint8_t, FxFreeDeleter> data(
pWriter->Encode(byteString, format, outWidth, outHeight));
- if (!data)
- return false;
- return pWriter->RenderResult(encodeContents.AsStringView(), data.get(),
- outWidth);
+ return data && pWriter->RenderResult(m_renderContents.AsStringView(),
+ data.get(), outWidth);
}
bool CBC_UPCA::RenderDevice(CFX_RenderDevice* device,
diff --git a/fxbarcode/datamatrix/BC_DefaultPlacement.cpp b/fxbarcode/datamatrix/BC_DefaultPlacement.cpp
index 3f1b35864f..24d81f1bb3 100644
--- a/fxbarcode/datamatrix/BC_DefaultPlacement.cpp
+++ b/fxbarcode/datamatrix/BC_DefaultPlacement.cpp
@@ -21,19 +21,23 @@
*/
#include "fxbarcode/datamatrix/BC_DefaultPlacement.h"
+
+#include <utility>
+
#include "fxbarcode/datamatrix/BC_Encoder.h"
CBC_DefaultPlacement::CBC_DefaultPlacement(WideString codewords,
int32_t numcols,
- int32_t numrows) {
- m_codewords = codewords;
- m_numcols = numcols;
- m_numrows = numrows;
+ int32_t numrows)
+ : m_codewords(std::move(codewords)),
+ m_numrows(numrows),
+ m_numcols(numcols) {
m_bits.resize(numcols * numrows);
for (int32_t i = 0; i < numcols * numrows; i++) {
m_bits[i] = (uint8_t)2;
}
}
+
CBC_DefaultPlacement::~CBC_DefaultPlacement() {}
int32_t CBC_DefaultPlacement::getNumrows() {
diff --git a/fxbarcode/datamatrix/BC_EncoderContext.cpp b/fxbarcode/datamatrix/BC_EncoderContext.cpp
index f5c2f4c1fc..e72d1e4640 100644
--- a/fxbarcode/datamatrix/BC_EncoderContext.cpp
+++ b/fxbarcode/datamatrix/BC_EncoderContext.cpp
@@ -22,6 +22,8 @@
#include "fxbarcode/datamatrix/BC_EncoderContext.h"
+#include <utility>
+
#include "fxbarcode/BC_UtilCodingConvert.h"
#include "fxbarcode/common/BC_CommonBitMatrix.h"
#include "fxbarcode/datamatrix/BC_Encoder.h"
@@ -43,7 +45,7 @@ CBC_EncoderContext::CBC_EncoderContext(const WideString& msg,
}
sb += ch;
}
- m_msg = sb;
+ m_msg = std::move(sb);
m_codewords.Reserve(m_msg.GetLength());
m_allowRectangular = true;
m_newEncoding = -1;
diff --git a/fxjs/cfxjse_formcalc_context.cpp b/fxjs/cfxjse_formcalc_context.cpp
index 181d9a1dce..3ed8a78da3 100644
--- a/fxjs/cfxjse_formcalc_context.cpp
+++ b/fxjs/cfxjse_formcalc_context.cpp
@@ -3807,16 +3807,14 @@ void CFXJSE_FormCalcContext::Format(CFXJSE_Value* pThis,
wsPattern = L"num{" + wsPattern + L"}";
} break;
default: {
- WideString wsTestPattern;
- wsTestPattern = L"num{" + wsPattern + L"}";
+ WideString wsTestPattern = L"num{" + wsPattern + L"}";
CXFA_LocaleValue tempLocaleValue(XFA_VT_FLOAT, wsValue, wsTestPattern,
pLocale, pMgr);
if (tempLocaleValue.IsValid()) {
- wsPattern = wsTestPattern;
+ wsPattern = std::move(wsTestPattern);
patternType = XFA_VT_FLOAT;
} else {
- wsTestPattern = L"text{" + wsPattern + L"}";
- wsPattern = wsTestPattern;
+ wsPattern = L"text{" + wsPattern + L"}";
patternType = XFA_VT_TEXT;
}
} break;
diff --git a/fxjs/cfxjse_resolveprocessor.cpp b/fxjs/cfxjse_resolveprocessor.cpp
index 46163b55fc..0419b79053 100644
--- a/fxjs/cfxjse_resolveprocessor.cpp
+++ b/fxjs/cfxjse_resolveprocessor.cpp
@@ -179,7 +179,7 @@ bool CFXJSE_ResolveProcessor::ResolveNumberSign(CFXJSE_ResolveNodeData& rnd) {
rndFind.m_dwStyles = rnd.m_dwStyles;
rndFind.m_dwStyles |= XFA_RESOLVENODE_TagName;
rndFind.m_dwStyles &= ~XFA_RESOLVENODE_Attributes;
- rndFind.m_wsName = wsName;
+ rndFind.m_wsName = std::move(wsName);
rndFind.m_uHashName = static_cast<XFA_HashCode>(
FX_HashCode_GetW(rndFind.m_wsName.AsStringView(), false));
rndFind.m_wsCondition = wsCondition;
@@ -255,10 +255,9 @@ bool CFXJSE_ResolveProcessor::ResolveNormal(CFXJSE_ResolveNodeData& rnd) {
} else {
rndFind.m_CurObject = pVariablesNode;
SetStylesForChild(dwStyles, rndFind);
- WideString wsSaveCondition = rndFind.m_wsCondition;
- rndFind.m_wsCondition.clear();
+ WideString wsSaveCondition = std::move(rndFind.m_wsCondition);
ResolveNormal(rndFind);
- rndFind.m_wsCondition = wsSaveCondition;
+ rndFind.m_wsCondition = std::move(wsSaveCondition);
rnd.m_Objects.insert(rnd.m_Objects.end(), rndFind.m_Objects.begin(),
rndFind.m_Objects.end());
rndFind.m_Objects.clear();
@@ -290,11 +289,9 @@ bool CFXJSE_ResolveProcessor::ResolveNormal(CFXJSE_ResolveNodeData& rnd) {
}
rndFind.m_CurObject = child;
- WideString wsSaveCondition = rndFind.m_wsCondition;
- rndFind.m_wsCondition.clear();
+ WideString wsSaveCondition = std::move(rndFind.m_wsCondition);
ResolveNormal(rndFind);
-
- rndFind.m_wsCondition = wsSaveCondition;
+ rndFind.m_wsCondition = std::move(wsSaveCondition);
rnd.m_Objects.insert(rnd.m_Objects.end(), rndFind.m_Objects.begin(),
rndFind.m_Objects.end());
rndFind.m_Objects.clear();
@@ -425,15 +422,12 @@ bool CFXJSE_ResolveProcessor::ResolveNormal(CFXJSE_ResolveNodeData& rnd) {
}
if (bInnerSearch) {
rndFind.m_CurObject = child;
- WideString wsOriginCondition = rndFind.m_wsCondition;
- rndFind.m_wsCondition.clear();
-
+ WideString wsOriginCondition = std::move(rndFind.m_wsCondition);
uint32_t dwOriginStyle = rndFind.m_dwStyles;
rndFind.m_dwStyles = dwOriginStyle | XFA_RESOLVENODE_ALL;
ResolveNormal(rndFind);
-
rndFind.m_dwStyles = dwOriginStyle;
- rndFind.m_wsCondition = wsOriginCondition;
+ rndFind.m_wsCondition = std::move(wsOriginCondition);
rnd.m_Objects.insert(rnd.m_Objects.end(), rndFind.m_Objects.begin(),
rndFind.m_Objects.end());
rndFind.m_Objects.clear();
diff --git a/fxjs/cjs_globaldata.cpp b/fxjs/cjs_globaldata.cpp
index 59ada3b8d1..de240cf453 100644
--- a/fxjs/cjs_globaldata.cpp
+++ b/fxjs/cjs_globaldata.cpp
@@ -90,9 +90,8 @@ CJS_GlobalData_Element* CJS_GlobalData::GetGlobalVariable(
return iter != m_arrayGlobalData.end() ? iter->get() : nullptr;
}
-void CJS_GlobalData::SetGlobalVariableNumber(const ByteString& propname,
+void CJS_GlobalData::SetGlobalVariableNumber(ByteString sPropName,
double dData) {
- ByteString sPropName(propname);
if (!TrimPropName(&sPropName))
return;
@@ -102,15 +101,14 @@ void CJS_GlobalData::SetGlobalVariableNumber(const ByteString& propname,
return;
}
auto pNewData = pdfium::MakeUnique<CJS_GlobalData_Element>();
- pNewData->data.sKey = sPropName;
+ pNewData->data.sKey = std::move(sPropName);
pNewData->data.nType = JS_GlobalDataType::NUMBER;
pNewData->data.dData = dData;
m_arrayGlobalData.push_back(std::move(pNewData));
}
-void CJS_GlobalData::SetGlobalVariableBoolean(const ByteString& propname,
+void CJS_GlobalData::SetGlobalVariableBoolean(ByteString sPropName,
bool bData) {
- ByteString sPropName(propname);
if (!TrimPropName(&sPropName))
return;
@@ -120,15 +118,14 @@ void CJS_GlobalData::SetGlobalVariableBoolean(const ByteString& propname,
return;
}
auto pNewData = pdfium::MakeUnique<CJS_GlobalData_Element>();
- pNewData->data.sKey = sPropName;
+ pNewData->data.sKey = std::move(sPropName);
pNewData->data.nType = JS_GlobalDataType::BOOLEAN;
pNewData->data.bData = bData;
m_arrayGlobalData.push_back(std::move(pNewData));
}
-void CJS_GlobalData::SetGlobalVariableString(const ByteString& propname,
+void CJS_GlobalData::SetGlobalVariableString(ByteString sPropName,
const ByteString& sData) {
- ByteString sPropName(propname);
if (!TrimPropName(&sPropName))
return;
@@ -138,16 +135,15 @@ void CJS_GlobalData::SetGlobalVariableString(const ByteString& propname,
return;
}
auto pNewData = pdfium::MakeUnique<CJS_GlobalData_Element>();
- pNewData->data.sKey = sPropName;
+ pNewData->data.sKey = std::move(sPropName);
pNewData->data.nType = JS_GlobalDataType::STRING;
pNewData->data.sData = sData;
m_arrayGlobalData.push_back(std::move(pNewData));
}
void CJS_GlobalData::SetGlobalVariableObject(
- const ByteString& propname,
+ ByteString sPropName,
const CJS_GlobalVariableArray& array) {
- ByteString sPropName(propname);
if (!TrimPropName(&sPropName))
return;
@@ -157,14 +153,13 @@ void CJS_GlobalData::SetGlobalVariableObject(
return;
}
auto pNewData = pdfium::MakeUnique<CJS_GlobalData_Element>();
- pNewData->data.sKey = sPropName;
+ pNewData->data.sKey = std::move(sPropName);
pNewData->data.nType = JS_GlobalDataType::OBJECT;
pNewData->data.objData.Copy(array);
m_arrayGlobalData.push_back(std::move(pNewData));
}
-void CJS_GlobalData::SetGlobalVariableNull(const ByteString& propname) {
- ByteString sPropName(propname);
+void CJS_GlobalData::SetGlobalVariableNull(ByteString sPropName) {
if (!TrimPropName(&sPropName))
return;
@@ -173,14 +168,13 @@ void CJS_GlobalData::SetGlobalVariableNull(const ByteString& propname) {
return;
}
auto pNewData = pdfium::MakeUnique<CJS_GlobalData_Element>();
- pNewData->data.sKey = sPropName;
+ pNewData->data.sKey = std::move(sPropName);
pNewData->data.nType = JS_GlobalDataType::NULLOBJ;
m_arrayGlobalData.push_back(std::move(pNewData));
}
-bool CJS_GlobalData::SetGlobalVariablePersistent(const ByteString& propname,
+bool CJS_GlobalData::SetGlobalVariablePersistent(ByteString sPropName,
bool bPersistent) {
- ByteString sPropName(propname);
if (!TrimPropName(&sPropName))
return false;
@@ -192,8 +186,7 @@ bool CJS_GlobalData::SetGlobalVariablePersistent(const ByteString& propname,
return true;
}
-bool CJS_GlobalData::DeleteGlobalVariable(const ByteString& propname) {
- ByteString sPropName(propname);
+bool CJS_GlobalData::DeleteGlobalVariable(ByteString sPropName) {
if (!TrimPropName(&sPropName))
return false;
diff --git a/fxjs/cjs_globaldata.h b/fxjs/cjs_globaldata.h
index b9a4b2123e..9ce4358fd4 100644
--- a/fxjs/cjs_globaldata.h
+++ b/fxjs/cjs_globaldata.h
@@ -29,16 +29,14 @@ class CJS_GlobalData {
static CJS_GlobalData* GetRetainedInstance(CPDFSDK_FormFillEnvironment* pApp);
void Release();
- void SetGlobalVariableNumber(const ByteString& propname, double dData);
- void SetGlobalVariableBoolean(const ByteString& propname, bool bData);
- void SetGlobalVariableString(const ByteString& propname,
- const ByteString& sData);
- void SetGlobalVariableObject(const ByteString& propname,
+ void SetGlobalVariableNumber(ByteString propname, double dData);
+ void SetGlobalVariableBoolean(ByteString propname, bool bData);
+ void SetGlobalVariableString(ByteString propname, const ByteString& sData);
+ void SetGlobalVariableObject(ByteString propname,
const CJS_GlobalVariableArray& array);
- void SetGlobalVariableNull(const ByteString& propname);
- bool SetGlobalVariablePersistent(const ByteString& propname,
- bool bPersistent);
- bool DeleteGlobalVariable(const ByteString& propname);
+ void SetGlobalVariableNull(ByteString propname);
+ bool SetGlobalVariablePersistent(ByteString propname, bool bPersistent);
+ bool DeleteGlobalVariable(ByteString propname);
int32_t GetSize() const;
CJS_GlobalData_Element* GetAt(int index) const;
diff --git a/fxjs/cjs_publicmethods.cpp b/fxjs/cjs_publicmethods.cpp
index 908611b0d6..4630445a35 100644
--- a/fxjs/cjs_publicmethods.cpp
+++ b/fxjs/cjs_publicmethods.cpp
@@ -14,6 +14,7 @@
#include <limits>
#include <sstream>
#include <string>
+#include <utility>
#include <vector>
#include "core/fpdfdoc/cpdf_interform.h"
@@ -1192,13 +1193,12 @@ double CJS_PublicMethods::MakeInterDate(const WideString& strValue) {
WideString sTemp;
for (const auto& c : strValue) {
if (c == L' ' || c == L':') {
- wsArray.push_back(sTemp);
- sTemp.clear();
+ wsArray.push_back(std::move(sTemp));
continue;
}
sTemp += c;
}
- wsArray.push_back(sTemp);
+ wsArray.push_back(std::move(sTemp));
if (wsArray.size() != 8)
return 0;
@@ -1471,7 +1471,7 @@ CJS_Return CJS_PublicMethods::AFSpecial_KeystrokeEx(
}
iIndexMask++;
}
- wideChange = wChange;
+ wideChange = std::move(wChange);
return CJS_Return();
}
diff --git a/fxjs/xfa/cjx_layoutpseudomodel.cpp b/fxjs/xfa/cjx_layoutpseudomodel.cpp
index a5dcf98b00..e448aea252 100644
--- a/fxjs/xfa/cjx_layoutpseudomodel.cpp
+++ b/fxjs/xfa/cjx_layoutpseudomodel.cpp
@@ -7,6 +7,7 @@
#include "fxjs/xfa/cjx_layoutpseudomodel.h"
#include <set>
+#include <utility>
#include "core/fxcrt/fx_coordinates.h"
#include "fxjs/cfxjse_engine.h"
@@ -84,10 +85,9 @@ CJS_Return CJX_LayoutPseudoModel::HWXY(
if (params.size() >= 2) {
WideString tmp_unit = runtime->ToWideString(params[1]);
if (!tmp_unit.IsEmpty())
- unit = tmp_unit;
+ unit = std::move(tmp_unit);
}
int32_t iIndex = params.size() >= 3 ? runtime->ToInt32(params[2]) : 0;
-
CXFA_LayoutProcessor* pDocLayout = GetDocument()->GetLayoutProcessor();
if (!pDocLayout)
return CJS_Return();
diff --git a/fxjs/xfa/cjx_object.cpp b/fxjs/xfa/cjx_object.cpp
index a6b1d122ae..2cf6f6755d 100644
--- a/fxjs/xfa/cjx_object.cpp
+++ b/fxjs/xfa/cjx_object.cpp
@@ -1175,9 +1175,9 @@ void CJX_Object::Script_Attribute_String(CFXJSE_Value* pValue,
WideString wsSOM;
if (!wsValue.IsEmpty()) {
if (wsValue[0] == '#')
- wsID = WideString(wsValue.c_str() + 1, wsValue.GetLength() - 1);
+ wsID = wsValue.Mid(1, wsValue.GetLength() - 1);
else
- wsSOM = wsValue;
+ wsSOM = std::move(wsValue);
}
CXFA_Node* pProtoNode = nullptr;
diff --git a/xfa/fgas/crt/cfgas_formatstring.cpp b/xfa/fgas/crt/cfgas_formatstring.cpp
index 0162100949..e9d065d124 100644
--- a/xfa/fgas/crt/cfgas_formatstring.cpp
+++ b/xfa/fgas/crt/cfgas_formatstring.cpp
@@ -7,6 +7,7 @@
#include "xfa/fgas/crt/cfgas_formatstring.h"
#include <algorithm>
+#include <utility>
#include <vector>
#include "core/fxcrt/cfx_decimal.h"
@@ -1647,11 +1648,11 @@ FX_DATETIMETYPE CFGAS_FormatString::GetDateTimeFormat(
bBraceOpen = false;
if (!wsTempPattern.IsEmpty()) {
if (eCategory == FX_LOCALECATEGORY_Time)
- *wsTimePattern = wsTempPattern;
+ *wsTimePattern = std::move(wsTempPattern);
else if (eCategory == FX_LOCALECATEGORY_Date)
- *wsDatePattern = wsTempPattern;
-
- wsTempPattern.clear();
+ *wsDatePattern = std::move(wsTempPattern);
+ else
+ wsTempPattern.clear();
}
} else {
wsTempPattern += pStr[ccf];
@@ -2246,14 +2247,13 @@ bool CFGAS_FormatString::FormatDateTime(const WideString& wsSrcDateTime,
return false;
if (eCategory == FX_DATETIMETYPE_Unknown) {
- if (eDateTimeType == FX_DATETIMETYPE_Time) {
- wsTimePattern = wsDatePattern;
- wsDatePattern.clear();
- }
+ if (eDateTimeType == FX_DATETIMETYPE_Time)
+ wsTimePattern = std::move(wsDatePattern);
+
eCategory = eDateTimeType;
+ if (eCategory == FX_DATETIMETYPE_Unknown)
+ return false;
}
- if (eCategory == FX_DATETIMETYPE_Unknown)
- return false;
CFX_DateTime dt;
auto iT = wsSrcDateTime.Find(L"T");
diff --git a/xfa/fwl/cfwl_listbox.cpp b/xfa/fwl/cfwl_listbox.cpp
index 0b0043b3cc..5f683d3e11 100644
--- a/xfa/fwl/cfwl_listbox.cpp
+++ b/xfa/fwl/cfwl_listbox.cpp
@@ -458,7 +458,7 @@ void CFWL_ListBox::DrawItem(CXFA_Graphics* pGraphics,
textParam.m_pGraphics = pGraphics;
textParam.m_matrix.Concat(*pMatrix);
textParam.m_rtPart = rtText;
- textParam.m_wsText = wsText;
+ textParam.m_wsText = std::move(wsText);
textParam.m_dwTTOStyles = m_dwTTOStyles;
textParam.m_iTTOAlign = m_iTTOAligns;
textParam.m_bMaximize = true;
diff --git a/xfa/fxfa/cxfa_ffcombobox.cpp b/xfa/fxfa/cxfa_ffcombobox.cpp
index a150101efb..893ee60aa1 100644
--- a/xfa/fxfa/cxfa_ffcombobox.cpp
+++ b/xfa/fxfa/cxfa_ffcombobox.cpp
@@ -120,7 +120,7 @@ bool CXFA_FFComboBox::IsDataChanged() {
if (m_pNode->GetValue(XFA_VALUEPICTURE_Raw) == wsText)
return false;
- m_wsNewValue = wsText;
+ m_wsNewValue = std::move(wsText);
return true;
}
diff --git a/xfa/fxfa/cxfa_fftextedit.cpp b/xfa/fxfa/cxfa_fftextedit.cpp
index a8080d13d5..81bc9b3816 100644
--- a/xfa/fxfa/cxfa_fftextedit.cpp
+++ b/xfa/fxfa/cxfa_fftextedit.cpp
@@ -313,7 +313,7 @@ void CXFA_FFTextEdit::OnTextWillChange(CFWL_Widget* pWidget,
// Copy the data back out of the EventParam and into the TextChanged event so
// it can propagate back to the calling widget.
event->cancelled = eParam.m_bCancelAction;
- event->change_text = eParam.m_wsChange;
+ event->change_text = std::move(eParam.m_wsChange);
event->selection_start = static_cast<size_t>(eParam.m_iSelStart);
event->selection_end = static_cast<size_t>(eParam.m_iSelEnd);
}
diff --git a/xfa/fxfa/parser/cxfa_document_parser.cpp b/xfa/fxfa/parser/cxfa_document_parser.cpp
index 6f3e56ce4c..8bafc7f078 100644
--- a/xfa/fxfa/parser/cxfa_document_parser.cpp
+++ b/xfa/fxfa/parser/cxfa_document_parser.cpp
@@ -138,7 +138,7 @@ bool GetAttributeLocalName(const WideStringView& wsAttributeName,
WideString wsAttrName(wsAttributeName);
auto pos = wsAttrName.Find(L':', 0);
if (!pos.has_value()) {
- wsLocalAttrName = wsAttrName;
+ wsLocalAttrName = std::move(wsAttrName);
return false;
}
wsLocalAttrName = wsAttrName.Right(wsAttrName.GetLength() - pos.value() - 1);
@@ -254,7 +254,7 @@ void ConvertXMLToPlainText(CFX_XMLElement* pRootXMLNode, WideString& wsOutput) {
if (IsStringAllWhitespace(wsText))
continue;
- wsOutput = wsText;
+ wsOutput = std::move(wsText);
break;
}
default:
diff --git a/xfa/fxfa/parser/cxfa_localevalue.cpp b/xfa/fxfa/parser/cxfa_localevalue.cpp
index 78f6b3b5e4..3a55045905 100644
--- a/xfa/fxfa/parser/cxfa_localevalue.cpp
+++ b/xfa/fxfa/parser/cxfa_localevalue.cpp
@@ -6,6 +6,7 @@
#include "xfa/fxfa/parser/cxfa_localevalue.h"
+#include <utility>
#include <vector>
#include "core/fxcrt/fx_extension.h"
@@ -618,7 +619,7 @@ bool CXFA_LocaleValue::ParsePatternValue(const WideString& wsValue,
WideString fNum;
bRet = pFormat->ParseNum(wsValue, wsFormat, &fNum);
if (bRet)
- m_wsValue = fNum;
+ m_wsValue = std::move(fNum);
break;
}
case FX_LOCALECATEGORY_Text:
diff --git a/xfa/fxfa/parser/cxfa_nodehelper.cpp b/xfa/fxfa/parser/cxfa_nodehelper.cpp
index eea054a169..7eddddf37b 100644
--- a/xfa/fxfa/parser/cxfa_nodehelper.cpp
+++ b/xfa/fxfa/parser/cxfa_nodehelper.cpp
@@ -6,6 +6,8 @@
#include "xfa/fxfa/parser/cxfa_nodehelper.h"
+#include <utility>
+
#include "core/fxcrt/fx_extension.h"
#include "fxjs/cfxjse_engine.h"
#include "fxjs/xfa/cjx_object.h"
@@ -237,14 +239,13 @@ WideString CXFA_NodeHelper::GetNameExpression(CXFA_Node* refNode,
WideString wsName;
if (bIsAllPath) {
wsName = GetNameExpression(refNode, false, eLogicType);
- WideString wsParent;
CXFA_Node* parent =
ResolveNodes_GetParent(refNode, XFA_LOGIC_NoTransparent);
while (parent) {
- wsParent = GetNameExpression(parent, false, eLogicType);
+ WideString wsParent = GetNameExpression(parent, false, eLogicType);
wsParent += L".";
wsParent += wsName;
- wsName = wsParent;
+ wsName = std::move(wsParent);
parent = ResolveNodes_GetParent(parent, XFA_LOGIC_NoTransparent);
}
return wsName;