Remove some PDF_EncodeText() usage.
Oftentimes it is used to encode the text that goes into CPDF_String.
This is unnecessary, since CPDF_String can just take a WideString and
call PDF_EncodeText() internally.
Change-Id: Idca197924db3cd105d22025e0e9664686cd95762
Reviewed-on: https://pdfium-review.googlesource.com/c/47711
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfdoc/cpdf_filespec.cpp b/core/fpdfdoc/cpdf_filespec.cpp
index 2ea1e0f..64a482b 100644
--- a/core/fpdfdoc/cpdf_filespec.cpp
+++ b/core/fpdfdoc/cpdf_filespec.cpp
@@ -206,6 +206,6 @@
m_pWritableObj->SetString(wsStr.ToDefANSI());
} else if (CPDF_Dictionary* pDict = m_pWritableObj->AsDictionary()) {
pDict->SetNewFor<CPDF_String>(pdfium::stream::kF, wsStr.ToDefANSI(), false);
- pDict->SetNewFor<CPDF_String>("UF", PDF_EncodeText(wsStr), false);
+ pDict->SetNewFor<CPDF_String>("UF", wsStr);
}
}
diff --git a/core/fpdfdoc/cpdf_formfield.cpp b/core/fpdfdoc/cpdf_formfield.cpp
index d5a6530..d09a5b5 100644
--- a/core/fpdfdoc/cpdf_formfield.cpp
+++ b/core/fpdfdoc/cpdf_formfield.cpp
@@ -381,19 +381,16 @@
return false;
}
ByteString key(bDefault ? "DV" : "V");
+ m_pForm->GetDocument()->AddOrphan(m_pDict->RemoveFor(key));
+ m_pDict->SetNewFor<CPDF_String>(key, csValue);
int iIndex = FindOptionValue(csValue);
if (iIndex < 0) {
- ByteString bsEncodeText = PDF_EncodeText(csValue);
- m_pForm->GetDocument()->AddOrphan(m_pDict->RemoveFor(key));
- m_pDict->SetNewFor<CPDF_String>(key, bsEncodeText, false);
if (m_Type == kRichText && !bDefault) {
m_pForm->GetDocument()->AddOrphan(m_pDict->RemoveFor("RV"));
- m_pDict->SetNewFor<CPDF_String>("RV", bsEncodeText, false);
+ m_pDict->SetFor("RV", m_pDict->GetObjectFor(key)->Clone());
}
m_pForm->GetDocument()->AddOrphan(m_pDict->RemoveFor("I"));
} else {
- m_pForm->GetDocument()->AddOrphan(m_pDict->RemoveFor(key));
- m_pDict->SetNewFor<CPDF_String>(key, PDF_EncodeText(csValue), false);
if (!bDefault) {
ClearSelection(NotificationOption::kDoNotNotify);
SetItemSelection(iIndex, true, NotificationOption::kDoNotNotify);
@@ -574,18 +571,16 @@
if (GetType() == kListBox) {
SelectOption(index, true, NotificationOption::kDoNotNotify);
if (!(m_Flags & kFormListMultiSelect)) {
- m_pDict->SetNewFor<CPDF_String>("V", PDF_EncodeText(opt_value), false);
+ m_pDict->SetNewFor<CPDF_String>("V", opt_value);
} else {
CPDF_Array* pArray = m_pDict->SetNewFor<CPDF_Array>("V");
for (int i = 0; i < CountOptions(); i++) {
- if (i == index || IsItemSelected(i)) {
- opt_value = GetOptionValue(i);
- pArray->AddNew<CPDF_String>(PDF_EncodeText(opt_value), false);
- }
+ if (i == index || IsItemSelected(i))
+ pArray->AddNew<CPDF_String>(GetOptionValue(i));
}
}
} else {
- m_pDict->SetNewFor<CPDF_String>("V", PDF_EncodeText(opt_value), false);
+ m_pDict->SetNewFor<CPDF_String>("V", opt_value);
CPDF_Array* pI = m_pDict->SetNewFor<CPDF_Array>("I");
pI->AddNew<CPDF_Number>(index);
}
@@ -600,10 +595,8 @@
} else if (pValue->IsArray()) {
auto pArray = pdfium::MakeUnique<CPDF_Array>();
for (int i = 0; i < CountOptions(); i++) {
- if (i != index && IsItemSelected(i)) {
- opt_value = GetOptionValue(i);
- pArray->AddNew<CPDF_String>(PDF_EncodeText(opt_value), false);
- }
+ if (i != index && IsItemSelected(i))
+ pArray->AddNew<CPDF_String>(GetOptionValue(i));
}
if (pArray->size() > 0) {
m_pForm->GetDocument()->AddOrphan(m_pDict->RemoveFor("V"));
@@ -698,8 +691,7 @@
if (!bChecked && pControl->IsChecked() == bChecked)
return false;
- WideString csWExport = pControl->GetExportValue();
- ByteString csBExport = PDF_EncodeText(csWExport);
+ const WideString csWExport = pControl->GetExportValue();
int iCount = CountControls();
bool bUnison = IsUnison(this);
for (int i = 0; i < iCount; i++) {
@@ -724,6 +716,7 @@
const CPDF_Object* pOpt = FPDF_GetFieldAttr(m_pDict.Get(), "Opt");
if (!ToArray(pOpt)) {
+ ByteString csBExport = PDF_EncodeText(csWExport);
if (bChecked) {
m_pDict->SetNewFor<CPDF_Name>("V", csBExport);
} else {
diff --git a/core/fpdfdoc/cpdf_interactiveform.cpp b/core/fpdfdoc/cpdf_interactiveform.cpp
index a148ac4..5555904 100644
--- a/core/fpdfdoc/cpdf_interactiveform.cpp
+++ b/core/fpdfdoc/cpdf_interactiveform.cpp
@@ -1022,8 +1022,7 @@
WideString wsFilePath = CPDF_FileSpec::EncodeFileName(pdf_path);
pMainDict->SetNewFor<CPDF_String>(pdfium::stream::kF,
wsFilePath.ToDefANSI(), false);
- pMainDict->SetNewFor<CPDF_String>("UF", PDF_EncodeText(wsFilePath),
- false);
+ pMainDict->SetNewFor<CPDF_String>("UF", wsFilePath);
} else {
auto pNewDict = pDoc->New<CPDF_Dictionary>();
pNewDict->SetNewFor<CPDF_Name>("Type", "Filespec");
diff --git a/fpdfsdk/cpdfsdk_baannot.cpp b/fpdfsdk/cpdfsdk_baannot.cpp
index 1c9e5bc..c1f16a3 100644
--- a/fpdfsdk/cpdfsdk_baannot.cpp
+++ b/fpdfsdk/cpdfsdk_baannot.cpp
@@ -100,7 +100,7 @@
CPDF_Dictionary* pDict = GetAnnotDict();
m_pAnnot->GetDocument()->AddOrphan(pDict->RemoveFor("NM"));
if (!sName.IsEmpty())
- pDict->SetNewFor<CPDF_String>("NM", PDF_EncodeText(sName), false);
+ pDict->SetNewFor<CPDF_String>("NM", sName);
}
WideString CPDFSDK_BAAnnot::GetAnnotName() const {
diff --git a/fxjs/cjs_document.cpp b/fxjs/cjs_document.cpp
index 336e9ea..4dac07e 100644
--- a/fxjs/cjs_document.cpp
+++ b/fxjs/cjs_document.cpp
@@ -795,9 +795,7 @@
if (!m_pFormFillEnv->GetPermissions(FPDFPERM_MODIFY))
return CJS_Result::Failure(JSMessage::kPermissionError);
- WideString csProperty = pRuntime->ToWideString(vp);
- pDictionary->SetNewFor<CPDF_String>(propName, PDF_EncodeText(csProperty),
- false);
+ pDictionary->SetNewFor<CPDF_String>(propName, pRuntime->ToWideString(vp));
m_pFormFillEnv->SetChangeMark();
return CJS_Result::Success();
}