Use dedicated struct instead of std::pair in ExecuteBoolScript()
This reads better than .first or std::tie().
Change-Id: Iedb5142f42d2a136898e1b8c38b227ccf3cde126
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/114051
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/xfa/fxfa/cxfa_ffnotify.cpp b/xfa/fxfa/cxfa_ffnotify.cpp
index 91f1ec0..390ade7 100644
--- a/xfa/fxfa/cxfa_ffnotify.cpp
+++ b/xfa/fxfa/cxfa_ffnotify.cpp
@@ -220,10 +220,10 @@
EventParam.m_eType = XFA_EVENT_Unknown;
EventParam.m_bTargeted = false;
- XFA_EventError iRet;
- bool bRet;
- std::tie(iRet, bRet) = item->ExecuteBoolScript(pDocView, script, &EventParam);
- return iRet == XFA_EventError::kSuccess && bRet;
+ CXFA_Node::BoolScriptResult result =
+ item->ExecuteBoolScript(pDocView, script, &EventParam);
+ return result.xfa_event_result == XFA_EventError::kSuccess &&
+ result.script_result;
}
XFA_EventError CXFA_FFNotify::ExecEventByDeepFirst(CXFA_Node* pFormNode,
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index 54537fa..2f0297b 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -2676,14 +2676,13 @@
pDocView->GetLayoutStatus() != CXFA_FFDocView::LayoutStatus::kEnd;
XFA_EventError iFormat = XFA_EventError::kNotExist;
- XFA_EventError iRet = XFA_EventError::kNotExist;
CXFA_Script* script = validate->GetScriptIfExists();
- bool bRet = false;
bool hasBoolResult = (bInitDoc || bStatus) && GetRawValue().IsEmpty();
+ CXFA_Node::BoolScriptResult result = {XFA_EventError::kNotExist, false};
if (script) {
CXFA_EventParam eParam;
eParam.m_eType = XFA_EVENT_Validate;
- std::tie(iRet, bRet) = ExecuteBoolScript(pDocView, script, &eParam);
+ result = ExecuteBoolScript(pDocView, script, &eParam);
}
XFA_VERSION version = pDocView->GetDoc()->GetXFADoc()->GetCurVersionMode();
@@ -2696,15 +2695,16 @@
if (!bVersionFlag)
bVersionFlag = pDocView->GetDoc()->GetXFADoc()->is_scripting();
XFA_EventErrorAccumulate(
- &iRet,
+ &result.xfa_event_result,
ProcessNullTestValidate(pDocView, validate, iFlags, bVersionFlag));
}
- if (iRet == XFA_EventError::kSuccess && iFormat != XFA_EventError::kSuccess &&
- hasBoolResult && !bRet) {
+ if (result.xfa_event_result == XFA_EventError::kSuccess &&
+ iFormat != XFA_EventError::kSuccess && hasBoolResult &&
+ !result.script_result) {
ProcessScriptTestValidate(pDocView, validate, bVersionFlag);
}
- XFA_EventErrorAccumulate(&iRet, iFormat);
- return iRet;
+ XFA_EventErrorAccumulate(&result.xfa_event_result, iFormat);
+ return result.xfa_event_result;
}
WideString CXFA_Node::GetValidateCaptionName(bool bVersionFlag) {
@@ -2742,10 +2742,10 @@
XFA_EventError CXFA_Node::ExecuteScript(CXFA_FFDocView* pDocView,
CXFA_Script* script,
CXFA_EventParam* pEventParam) {
- return ExecuteBoolScript(pDocView, script, pEventParam).first;
+ return ExecuteBoolScript(pDocView, script, pEventParam).xfa_event_result;
}
-std::pair<XFA_EventError, bool> CXFA_Node::ExecuteBoolScript(
+CXFA_Node::BoolScriptResult CXFA_Node::ExecuteBoolScript(
CXFA_FFDocView* pDocView,
CXFA_Script* script,
CXFA_EventParam* pEventParam) {
diff --git a/xfa/fxfa/parser/cxfa_node.h b/xfa/fxfa/parser/cxfa_node.h
index 6156b03..d0c6798 100644
--- a/xfa/fxfa/parser/cxfa_node.h
+++ b/xfa/fxfa/parser/cxfa_node.h
@@ -112,6 +112,11 @@
UNOWNED_PTR_EXCLUSION void* default_value; // POD type.
};
+ struct BoolScriptResult {
+ XFA_EventError xfa_event_result;
+ bool script_result;
+ };
+
// Node is created from cppgc heap.
static CXFA_Node* Create(CXFA_Document* doc,
XFA_Element element,
@@ -301,10 +306,9 @@
XFA_EventError ExecuteScript(CXFA_FFDocView* pDocView,
CXFA_Script* script,
CXFA_EventParam* pEventParam);
- std::pair<XFA_EventError, bool> ExecuteBoolScript(
- CXFA_FFDocView* pDocView,
- CXFA_Script* script,
- CXFA_EventParam* pEventParam);
+ BoolScriptResult ExecuteBoolScript(CXFA_FFDocView* pDocView,
+ CXFA_Script* script,
+ CXFA_EventParam* pEventParam);
CXFA_Node* GetUIChildNode();