diff --git a/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp b/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp
index b48881a..189e4c4 100644
--- a/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp
+++ b/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp
@@ -840,12 +840,12 @@
 }
 
 void CXFA_ItemLayoutProcessor::GotoNextContainerNodeSimple(bool bUsePageBreak) {
-  GotoNextContainerNode(m_pCurChildNode, &m_nCurChildNodeStage, GetFormNode(),
+  GotoNextContainerNode(&m_pCurChildNode, &m_nCurChildNodeStage, GetFormNode(),
                         bUsePageBreak);
 }
 
 void CXFA_ItemLayoutProcessor::GotoNextContainerNode(
-    CXFA_Node*& pCurActionNode,
+    CXFA_Node** pCurActionNode,
     XFA_ItemLayoutProcessorStages* nCurStage,
     CXFA_Node* pParentContainer,
     bool bUsePageBreak) {
@@ -853,12 +853,12 @@
   switch (*nCurStage) {
     case XFA_ItemLayoutProcessorStages::BreakBefore:
     case XFA_ItemLayoutProcessorStages::BreakAfter: {
-      pChildContainer = pCurActionNode->GetParent();
+      pChildContainer = (*pCurActionNode)->GetParent();
       break;
     }
     case XFA_ItemLayoutProcessorStages::Keep:
     case XFA_ItemLayoutProcessorStages::Container:
-      pChildContainer = pCurActionNode;
+      pChildContainer = *pCurActionNode;
       break;
     default:
       pChildContainer = nullptr;
@@ -869,23 +869,23 @@
     case XFA_ItemLayoutProcessorStages::Keep: {
       CXFA_Node* pBreakAfterNode = pChildContainer->GetFirstChild();
       if (!m_bKeepBreakFinish &&
-          FindBreakNode(pBreakAfterNode, false, &pCurActionNode, nCurStage)) {
+          FindBreakNode(pBreakAfterNode, false, pCurActionNode, nCurStage)) {
         return;
       }
       goto CheckNextChildContainer;
     }
     case XFA_ItemLayoutProcessorStages::None: {
-      pCurActionNode = nullptr;
+      *pCurActionNode = nullptr;
       FALLTHROUGH;
       case XFA_ItemLayoutProcessorStages::BookendLeader:
-        for (CXFA_Node* pBookendNode = pCurActionNode
-                                           ? pCurActionNode->GetNextSibling()
+        for (CXFA_Node* pBookendNode = *pCurActionNode
+                                           ? (*pCurActionNode)->GetNextSibling()
                                            : pParentContainer->GetFirstChild();
              pBookendNode; pBookendNode = pBookendNode->GetNextSibling()) {
           switch (pBookendNode->GetElementType()) {
             case XFA_Element::Bookend:
             case XFA_Element::Break:
-              pCurActionNode = pBookendNode;
+              *pCurActionNode = pBookendNode;
               *nCurStage = XFA_ItemLayoutProcessorStages::BookendLeader;
               return;
             default:
@@ -894,44 +894,43 @@
         }
     }
       {
-        pCurActionNode = nullptr;
+        *pCurActionNode = nullptr;
         FALLTHROUGH;
         case XFA_ItemLayoutProcessorStages::BreakBefore:
-          if (pCurActionNode) {
-            CXFA_Node* pBreakBeforeNode = pCurActionNode->GetNextSibling();
+          if (*pCurActionNode) {
+            CXFA_Node* pBreakBeforeNode = (*pCurActionNode)->GetNextSibling();
             if (!m_bKeepBreakFinish &&
-                FindBreakNode(pBreakBeforeNode, true, &pCurActionNode,
+                FindBreakNode(pBreakBeforeNode, true, pCurActionNode,
                               nCurStage)) {
               return;
             }
             if (m_bIsProcessKeep) {
-              if (ProcessKeepNodesForBreakBefore(&pCurActionNode, nCurStage,
+              if (ProcessKeepNodesForBreakBefore(pCurActionNode, nCurStage,
                                                  pChildContainer)) {
                 return;
               }
               goto CheckNextChildContainer;
             }
-            pCurActionNode = pChildContainer;
+            *pCurActionNode = pChildContainer;
             *nCurStage = XFA_ItemLayoutProcessorStages::Container;
             return;
           }
           goto CheckNextChildContainer;
       }
     case XFA_ItemLayoutProcessorStages::Container: {
-      pCurActionNode = nullptr;
+      *pCurActionNode = nullptr;
       FALLTHROUGH;
       case XFA_ItemLayoutProcessorStages::BreakAfter: {
-        if (pCurActionNode) {
-          CXFA_Node* pBreakAfterNode = pCurActionNode->GetNextSibling();
-          if (FindBreakNode(pBreakAfterNode, false, &pCurActionNode,
+        if (*pCurActionNode) {
+          CXFA_Node* pBreakAfterNode = (*pCurActionNode)->GetNextSibling();
+          if (FindBreakNode(pBreakAfterNode, false, pCurActionNode,
                             nCurStage)) {
             return;
           }
         } else {
           CXFA_Node* pBreakAfterNode = pChildContainer->GetFirstChild();
-          if (!m_bKeepBreakFinish &&
-              FindBreakNode(pBreakAfterNode, false, &pCurActionNode,
-                            nCurStage)) {
+          if (!m_bKeepBreakFinish && FindBreakNode(pBreakAfterNode, false,
+                                                   pCurActionNode, nCurStage)) {
             return;
           }
         }
@@ -954,35 +953,33 @@
         goto NoMoreChildContainer;
 
       bool bLastKeep = false;
-      if (ProcessKeepNodesForCheckNext(&pCurActionNode, nCurStage,
+      if (ProcessKeepNodesForCheckNext(pCurActionNode, nCurStage,
                                        &pNextChildContainer, &bLastKeep)) {
         return;
       }
       if (!m_bKeepBreakFinish && !bLastKeep &&
           FindBreakNode(pNextChildContainer->GetFirstChild(), true,
-                        &pCurActionNode, nCurStage)) {
+                        pCurActionNode, nCurStage)) {
         return;
       }
-      pCurActionNode = pNextChildContainer;
-      if (m_bIsProcessKeep)
-        *nCurStage = XFA_ItemLayoutProcessorStages::Keep;
-      else
-        *nCurStage = XFA_ItemLayoutProcessorStages::Container;
+      *pCurActionNode = pNextChildContainer;
+      *nCurStage = m_bIsProcessKeep ? XFA_ItemLayoutProcessorStages::Keep
+                                    : XFA_ItemLayoutProcessorStages::Container;
       return;
     }
 
     NoMoreChildContainer : {
-      pCurActionNode = nullptr;
+      *pCurActionNode = nullptr;
       FALLTHROUGH;
       case XFA_ItemLayoutProcessorStages::BookendTrailer:
-        for (CXFA_Node* pBookendNode = pCurActionNode
-                                           ? pCurActionNode->GetNextSibling()
+        for (CXFA_Node* pBookendNode = *pCurActionNode
+                                           ? (*pCurActionNode)->GetNextSibling()
                                            : pParentContainer->GetFirstChild();
              pBookendNode; pBookendNode = pBookendNode->GetNextSibling()) {
           switch (pBookendNode->GetElementType()) {
             case XFA_Element::Bookend:
             case XFA_Element::Break:
-              pCurActionNode = pBookendNode;
+              *pCurActionNode = pBookendNode;
               *nCurStage = XFA_ItemLayoutProcessorStages::BookendTrailer;
               return;
             default:
@@ -992,7 +989,7 @@
     }
       FALLTHROUGH;
     default:
-      pCurActionNode = nullptr;
+      *pCurActionNode = nullptr;
       *nCurStage = XFA_ItemLayoutProcessorStages::Done;
   }
 }
@@ -1060,9 +1057,9 @@
   XFA_ItemLayoutProcessorStages nCurChildNodeStage =
       XFA_ItemLayoutProcessorStages::None;
   CXFA_LayoutItem* pBeforeItem = nullptr;
-  for (GotoNextContainerNode(pCurChildNode, &nCurChildNodeStage, pFormNode,
+  for (GotoNextContainerNode(&pCurChildNode, &nCurChildNodeStage, pFormNode,
                              false);
-       pCurChildNode; GotoNextContainerNode(pCurChildNode, &nCurChildNodeStage,
+       pCurChildNode; GotoNextContainerNode(&pCurChildNode, &nCurChildNodeStage,
                                             pFormNode, false)) {
     if (nCurChildNodeStage != XFA_ItemLayoutProcessorStages::Container)
       continue;
diff --git a/xfa/fxfa/parser/cxfa_itemlayoutprocessor.h b/xfa/fxfa/parser/cxfa_itemlayoutprocessor.h
index b9bfb60..bb86110 100644
--- a/xfa/fxfa/parser/cxfa_itemlayoutprocessor.h
+++ b/xfa/fxfa/parser/cxfa_itemlayoutprocessor.h
@@ -119,7 +119,7 @@
   void DoLayoutField();
 
   void GotoNextContainerNodeSimple(bool bUsePageBreak);
-  void GotoNextContainerNode(CXFA_Node*& pCurActionNode,
+  void GotoNextContainerNode(CXFA_Node** pCurActionNode,
                              XFA_ItemLayoutProcessorStages* nCurStage,
                              CXFA_Node* pParentContainer,
                              bool bUsePageBreak);
