Cleanup statics in JS classes
This CL removes the static object IDs from each of the CJS_Object
subclasses and moves them to anonymous namespaces. The Spec arrays are
moved to private members of the object classes.
Change-Id: I5dcdb87ef57e4b374b5431580fb55cb75023f8fb
Reviewed-on: https://pdfium-review.googlesource.com/16950
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
diff --git a/fpdfsdk/javascript/Field.cpp b/fpdfsdk/javascript/Field.cpp
index 0a35bf5..2a10406 100644
--- a/fpdfsdk/javascript/Field.cpp
+++ b/fpdfsdk/javascript/Field.cpp
@@ -165,14 +165,20 @@
{"signatureValidate", signatureValidate_static},
{0, 0}};
-int CJS_Field::g_nObjDefnID = -1;
+int CJS_Field::ObjDefnID = -1;
+// static
+int CJS_Field::GetObjDefnID() {
+ return ObjDefnID;
+}
+
+// static
void CJS_Field::DefineJSObjects(CFXJS_Engine* pEngine, FXJSOBJTYPE eObjType) {
- g_nObjDefnID =
+ ObjDefnID =
pEngine->DefineObj("Field", eObjType, JSConstructor<CJS_Field, Field>,
JSDestructor<CJS_Field>);
- DefineProps(pEngine, g_nObjDefnID, PropertySpecs);
- DefineMethods(pEngine, g_nObjDefnID, MethodSpecs);
+ DefineProps(pEngine, ObjDefnID, PropertySpecs);
+ DefineMethods(pEngine, ObjDefnID, MethodSpecs);
}
CJS_DelayData::CJS_DelayData(FIELD_PROP prop, int idx, const WideString& name)
@@ -2271,7 +2277,7 @@
return CJS_Return(false);
v8::Local<v8::Object> pObj =
- pRuntime->NewFxDynamicObj(CJS_Icon::g_nObjDefnID);
+ pRuntime->NewFxDynamicObj(CJS_Icon::GetObjDefnID());
if (pObj.IsEmpty())
return CJS_Return(false);
@@ -2391,7 +2397,7 @@
int j = 0;
for (const auto& pStr : swSort) {
v8::Local<v8::Object> pObj =
- pRuntime->NewFxDynamicObj(CJS_Field::g_nObjDefnID);
+ pRuntime->NewFxDynamicObj(CJS_Field::GetObjDefnID());
if (pObj.IsEmpty())
return CJS_Return(false);