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();