Convert CFXJSE_FormCalcContext static methods to anon functions
Change-Id: I44e870832c40486e5e0f37f8dfe08860ee227e54
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/67230
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/fxjs/xfa/cfxjse_class.cpp b/fxjs/xfa/cfxjse_class.cpp
index f6caf07..2934a85 100644
--- a/fxjs/xfa/cfxjse_class.cpp
+++ b/fxjs/xfa/cfxjse_class.cpp
@@ -124,7 +124,8 @@
info.GetReturnValue().Set(result.Return());
}
-void DynPropGetterAdapter(const FXJSE_CLASS_DESCRIPTOR* lpClass,
+void DynPropGetterAdapter(v8::Isolate* pIsolate,
+ const FXJSE_CLASS_DESCRIPTOR* lpClass,
CFXJSE_Value* pObject,
ByteStringView szPropName,
CFXJSE_Value* pValue) {
@@ -139,14 +140,12 @@
lpClass->dynPropGetter(pObject, szPropName, pValue);
} else if (nPropType == FXJSE_ClassPropType_Method) {
if (lpClass->dynMethodCall && pValue) {
- v8::Isolate* pIsolate = pValue->GetIsolate();
v8::HandleScope hscope(pIsolate);
v8::Local<v8::ObjectTemplate> hCallBackInfoTemplate =
v8::ObjectTemplate::New(pIsolate);
hCallBackInfoTemplate->SetInternalFieldCount(2);
v8::Local<v8::Object> hCallBackInfo =
- hCallBackInfoTemplate
- ->NewInstance(pValue->GetIsolate()->GetCurrentContext())
+ hCallBackInfoTemplate->NewInstance(pIsolate->GetCurrentContext())
.ToLocalChecked();
hCallBackInfo->SetAlignedPointerInInternalField(
0, const_cast<FXJSE_CLASS_DESCRIPTOR*>(lpClass));
@@ -156,7 +155,7 @@
v8::NewStringType::kNormal, szPropName.GetLength())
.ToLocalChecked());
pValue->ForceSetValue(
- v8::Function::New(pValue->GetIsolate()->GetCurrentContext(),
+ v8::Function::New(pIsolate->GetCurrentContext(),
DynPropGetterAdapter_MethodCallback, hCallBackInfo,
0, v8::ConstructorBehavior::kThrow)
.ToLocalChecked());
@@ -226,8 +225,8 @@
auto lpThisValue = pdfium::MakeUnique<CFXJSE_Value>(info.GetIsolate());
lpThisValue->ForceSetValue(thisObject);
auto lpNewValue = pdfium::MakeUnique<CFXJSE_Value>(info.GetIsolate());
- DynPropGetterAdapter(lpClass, lpThisValue.get(), szFxPropName,
- lpNewValue.get());
+ DynPropGetterAdapter(info.GetIsolate(), lpClass, lpThisValue.get(),
+ szFxPropName, lpNewValue.get());
info.GetReturnValue().Set(lpNewValue->DirectGetValue());
}
diff --git a/fxjs/xfa/cfxjse_formcalc_context.cpp b/fxjs/xfa/cfxjse_formcalc_context.cpp
index de05071..604f679 100644
--- a/fxjs/xfa/cfxjse_formcalc_context.cpp
+++ b/fxjs/xfa/cfxjse_formcalc_context.cpp
@@ -1326,6 +1326,26 @@
return ByteString(strBuf);
}
+void GetObjectDefaultValue(CFXJSE_Value* pValue, CFXJSE_Value* pDefaultValue) {
+ CXFA_Node* pNode = ToNode(CFXJSE_Engine::ToObject(pValue));
+ if (!pNode) {
+ pDefaultValue->SetNull();
+ return;
+ }
+ pNode->JSObject()->ScriptSomDefaultValue(pDefaultValue, false,
+ XFA_Attribute::Unknown);
+}
+
+bool SetObjectDefaultValue(CFXJSE_Value* pValue, CFXJSE_Value* hNewValue) {
+ CXFA_Node* pNode = ToNode(CFXJSE_Engine::ToObject(pValue));
+ if (!pNode)
+ return false;
+
+ pNode->JSObject()->ScriptSomDefaultValue(hNewValue, true,
+ XFA_Attribute::Unknown);
+ return true;
+}
+
} // namespace
const FXJSE_CLASS_DESCRIPTOR kFormCalcFM2JSDescriptor = {
@@ -5325,29 +5345,6 @@
}
// static
-void CFXJSE_FormCalcContext::GetObjectDefaultValue(
- CFXJSE_Value* pValue,
- CFXJSE_Value* pDefaultValue) {
- CXFA_Node* pNode = ToNode(CFXJSE_Engine::ToObject(pValue));
- if (!pNode) {
- pDefaultValue->SetNull();
- return;
- }
- pNode->JSObject()->ScriptSomDefaultValue(pDefaultValue, false,
- XFA_Attribute::Unknown);
-}
-
-// static
-bool CFXJSE_FormCalcContext::SetObjectDefaultValue(CFXJSE_Value* pValue,
- CFXJSE_Value* hNewValue) {
- CXFA_Node* pNode = ToNode(CFXJSE_Engine::ToObject(pValue));
- if (!pNode)
- return false;
-
- pNode->JSObject()->ScriptSomDefaultValue(hNewValue, true,
- XFA_Attribute::Unknown);
- return true;
-}
// static
ByteString CFXJSE_FormCalcContext::GenerateSomExpression(ByteStringView bsName,
diff --git a/fxjs/xfa/cfxjse_formcalc_context.h b/fxjs/xfa/cfxjse_formcalc_context.h
index cf1bc95..d0c1dce 100644
--- a/fxjs/xfa/cfxjse_formcalc_context.h
+++ b/fxjs/xfa/cfxjse_formcalc_context.h
@@ -347,10 +347,6 @@
static std::vector<std::unique_ptr<CFXJSE_Value>> unfoldArgs(
CFXJSE_Value* pThis,
CFXJSE_Arguments& args);
- static void GetObjectDefaultValue(CFXJSE_Value* pObjectValue,
- CFXJSE_Value* pDefaultValue);
- static bool SetObjectDefaultValue(CFXJSE_Value* pObjectValue,
- CFXJSE_Value* pNewValue);
static ByteString GenerateSomExpression(ByteStringView bsName,
int32_t iIndexFlags,
int32_t iIndexValue,
diff --git a/fxjs/xfa/cfxjse_value.h b/fxjs/xfa/cfxjse_value.h
index 44cc58c..4733dbd 100644
--- a/fxjs/xfa/cfxjse_value.h
+++ b/fxjs/xfa/cfxjse_value.h
@@ -65,7 +65,6 @@
CFXJSE_Value* lpPropValue);
bool SetFunctionBind(CFXJSE_Value* lpOldFunction, CFXJSE_Value* lpNewThis);
- v8::Isolate* GetIsolate() const { return m_pIsolate.Get(); }
const v8::Global<v8::Value>& DirectGetValue() const { return m_hValue; }
void ForceSetValue(v8::Local<v8::Value> hValue) {
m_hValue.Reset(GetIsolate(), hValue);
@@ -84,6 +83,8 @@
CFXJSE_Value(const CFXJSE_Value&) = delete;
CFXJSE_Value& operator=(const CFXJSE_Value&) = delete;
+ v8::Isolate* GetIsolate() const { return m_pIsolate.Get(); }
+
UnownedPtr<v8::Isolate> const m_pIsolate;
v8::Global<v8::Value> m_hValue;
};