Move CJS_Field::ParseFieldName() into an anonymous namespace.
It does not need to be part of CJS_Field.
Change-Id: I64b5ad69deefd381f14f5195b9afd9258f00c498
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/61551
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
diff --git a/fxjs/cjs_field.cpp b/fxjs/cjs_field.cpp
index 37aa797..ba0aa1e 100644
--- a/fxjs/cjs_field.cpp
+++ b/fxjs/cjs_field.cpp
@@ -132,6 +132,36 @@
pFormFillEnv->SetChangeMark();
}
+// note: iControlNo = -1, means not a widget.
+void ParseFieldName(const WideString& strFieldNameParsed,
+ WideString& strFieldName,
+ int& iControlNo) {
+ auto reverse_it = strFieldNameParsed.rbegin();
+ while (reverse_it != strFieldNameParsed.rend()) {
+ if (*reverse_it == L'.')
+ break;
+ ++reverse_it;
+ }
+ if (reverse_it == strFieldNameParsed.rend()) {
+ strFieldName = strFieldNameParsed;
+ iControlNo = -1;
+ return;
+ }
+ WideString suffixal =
+ strFieldNameParsed.Right(reverse_it - strFieldNameParsed.rbegin());
+ iControlNo = FXSYS_wtoi(suffixal.c_str());
+ if (iControlNo == 0) {
+ suffixal.TrimRight(L' ');
+ if (suffixal != L"0") {
+ strFieldName = strFieldNameParsed;
+ iControlNo = -1;
+ return;
+ }
+ }
+ strFieldName =
+ strFieldNameParsed.Left(strFieldNameParsed.rend() - reverse_it - 1);
+}
+
std::vector<CPDF_FormField*> GetFormFieldsForName(
CPDFSDK_FormFillEnvironment* pFormFillEnv,
const WideString& csFieldName) {
@@ -576,36 +606,6 @@
CJS_Field::~CJS_Field() = default;
-// note: iControlNo = -1, means not a widget.
-void CJS_Field::ParseFieldName(const WideString& strFieldNameParsed,
- WideString& strFieldName,
- int& iControlNo) {
- auto reverse_it = strFieldNameParsed.rbegin();
- while (reverse_it != strFieldNameParsed.rend()) {
- if (*reverse_it == L'.')
- break;
- ++reverse_it;
- }
- if (reverse_it == strFieldNameParsed.rend()) {
- strFieldName = strFieldNameParsed;
- iControlNo = -1;
- return;
- }
- WideString suffixal =
- strFieldNameParsed.Right(reverse_it - strFieldNameParsed.rbegin());
- iControlNo = FXSYS_wtoi(suffixal.c_str());
- if (iControlNo == 0) {
- suffixal.TrimRight(L' ');
- if (suffixal != L"0") {
- strFieldName = strFieldNameParsed;
- iControlNo = -1;
- return;
- }
- }
- strFieldName =
- strFieldNameParsed.Left(strFieldNameParsed.rend() - reverse_it - 1);
-}
-
bool CJS_Field::AttachField(CJS_Document* pDocument,
const WideString& csFieldName) {
m_pJSDoc.Reset(pDocument);
diff --git a/fxjs/cjs_field.h b/fxjs/cjs_field.h
index fd40b1f..d772e66 100644
--- a/fxjs/cjs_field.h
+++ b/fxjs/cjs_field.h
@@ -350,9 +350,6 @@
const std::vector<v8::Local<v8::Value>>& params);
void SetDelay(bool bDelay);
- void ParseFieldName(const WideString& strFieldNameParsed,
- WideString& strFieldName,
- int& iControlNo);
std::vector<CPDF_FormField*> GetFormFields() const;
CPDF_FormField* GetFirstFormField() const;
CPDF_FormControl* GetSmartFieldControl(CPDF_FormField* pFormField);