Cleanup CXFA_Node::SetFlag

The SetFlag method has a signature of (flag, bool) which, looking at the
callsites makes you think it will set the flag to the boolean. This
isn't what happens, the flag is always set to true and the boolean
decides if we execute some notification code.

This CL splits SetFlag into SetFlag(flag) and SetFlagAndNotify(flag) to
make it a lot clearer what is happening.

Change-Id: I3e067c87532cce10b94bda10cc88feb62b948eb0
Reviewed-on: https://pdfium-review.googlesource.com/26750
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
diff --git a/fxjs/xfa/cjx_node.cpp b/fxjs/xfa/cjx_node.cpp
index d3a9bf1..9b5d404 100644
--- a/fxjs/xfa/cjx_node.cpp
+++ b/fxjs/xfa/cjx_node.cpp
@@ -274,7 +274,7 @@
       CXFA_Node* pItem = pNewChild->GetNextSibling();
       pFakeRoot->RemoveChild(pNewChild, true);
       GetXFANode()->InsertChild(index++, pNewChild);
-      pNewChild->SetFlag(XFA_NodeFlag_Initialized, true);
+      pNewChild->SetFlagAndNotify(XFA_NodeFlag_Initialized);
       pNewChild = pItem;
     }
 
@@ -289,7 +289,7 @@
         GetXFANode()->GetElementType() == XFA_Element::ExData) {
       CFX_XMLNode* pTempXMLNode = GetXFANode()->GetXMLMappingNode();
       GetXFANode()->SetXMLMappingNode(pFakeXMLRoot.release());
-      GetXFANode()->SetFlag(XFA_NodeFlag_OwnXMLNode, false);
+      GetXFANode()->SetFlag(XFA_NodeFlag_OwnXMLNode);
       if (pTempXMLNode && !pTempXMLNode->GetParent())
         pFakeXMLRoot.reset(pTempXMLNode);
       else
@@ -302,16 +302,16 @@
       CXFA_Node* pItem = pChild->GetNextSibling();
       pFakeRoot->RemoveChild(pChild, true);
       GetXFANode()->InsertChild(pChild, nullptr);
-      pChild->SetFlag(XFA_NodeFlag_Initialized, true);
+      pChild->SetFlagAndNotify(XFA_NodeFlag_Initialized);
       pChild = pItem;
     }
   }
 
   if (pFakeXMLRoot) {
     pFakeRoot->SetXMLMappingNode(pFakeXMLRoot.release());
-    pFakeRoot->SetFlag(XFA_NodeFlag_OwnXMLNode, false);
+    pFakeRoot->SetFlag(XFA_NodeFlag_OwnXMLNode);
   }
-  pFakeRoot->SetFlag(XFA_NodeFlag_HasRemovedChildren, false);
+  pFakeRoot->SetFlag(XFA_NodeFlag_HasRemovedChildren);
 
   return CJS_Return(true);
 }
diff --git a/fxjs/xfa/cjx_object.cpp b/fxjs/xfa/cjx_object.cpp
index 50643ff..3f69035 100644
--- a/fxjs/xfa/cjx_object.cpp
+++ b/fxjs/xfa/cjx_object.cpp
@@ -942,7 +942,7 @@
       return nullptr;
 
     xfaNode->InsertChild(pNewNode, nullptr);
-    pNewNode->SetFlag(XFA_NodeFlag_Initialized, true);
+    pNewNode->SetFlagAndNotify(XFA_NodeFlag_Initialized);
   }
   return pNewNode;
 }
diff --git a/xfa/fxfa/cxfa_ffdocview.cpp b/xfa/fxfa/cxfa_ffdocview.cpp
index 42827c7..43879af 100644
--- a/xfa/fxfa/cxfa_ffdocview.cpp
+++ b/xfa/fxfa/cxfa_ffdocview.cpp
@@ -215,7 +215,7 @@
     return true;
 
   AddValidateNode(pNode);
-  validate->SetFlag(XFA_NodeFlag_NeedsInitApp, false);
+  validate->SetFlag(XFA_NodeFlag_NeedsInitApp);
   return true;
 }
 
diff --git a/xfa/fxfa/cxfa_fffield.cpp b/xfa/fxfa/cxfa_fffield.cpp
index 2238648..39c117b 100644
--- a/xfa/fxfa/cxfa_fffield.cpp
+++ b/xfa/fxfa/cxfa_fffield.cpp
@@ -697,7 +697,7 @@
       wsMessage += L"Are you sure you want to modify this field?";
       if (pAppProvider->MsgBox(wsMessage, L"Calculate Override",
                                XFA_MBICON_Warning, XFA_MB_YesNo) == XFA_IDYes) {
-        pNode->SetFlag(XFA_NodeFlag_UserInteractive, false);
+        pNode->SetFlag(XFA_NodeFlag_UserInteractive);
         return 1;
       }
       return 0;
@@ -705,7 +705,7 @@
     case XFA_AttributeEnum::Ignore:
       return 0;
     case XFA_AttributeEnum::Disabled:
-      pNode->SetFlag(XFA_NodeFlag_UserInteractive, false);
+      pNode->SetFlag(XFA_NodeFlag_UserInteractive);
       return 1;
     default:
       return 1;
diff --git a/xfa/fxfa/cxfa_ffnotify.cpp b/xfa/fxfa/cxfa_ffnotify.cpp
index a0aa047..d0e8a5d 100644
--- a/xfa/fxfa/cxfa_ffnotify.cpp
+++ b/xfa/fxfa/cxfa_ffnotify.cpp
@@ -329,7 +329,7 @@
       pDocView->AddBindItem(static_cast<CXFA_BindItems*>(pNode));
       break;
     case XFA_Element::Validate:
-      pNode->SetFlag(XFA_NodeFlag_NeedsInitApp, false);
+      pNode->SetFlag(XFA_NodeFlag_NeedsInitApp);
       break;
     default:
       break;
diff --git a/xfa/fxfa/cxfa_ffwidgethandler.cpp b/xfa/fxfa/cxfa_ffwidgethandler.cpp
index 66885e0..87d7a14 100644
--- a/xfa/fxfa/cxfa_ffwidgethandler.cpp
+++ b/xfa/fxfa/cxfa_ffwidgethandler.cpp
@@ -252,8 +252,8 @@
   if (!templateNode)
     return nullptr;
 
-  templateNode->SetFlag(XFA_NodeFlag_Initialized, true);
-  pNewFormItem->SetFlag(XFA_NodeFlag_Initialized, true);
+  templateNode->SetFlagAndNotify(XFA_NodeFlag_Initialized);
+  pNewFormItem->SetFlagAndNotify(XFA_NodeFlag_Initialized);
   m_pDocView->RunLayout();
   CXFA_LayoutItem* pLayout =
       m_pDocView->GetXFALayout()->GetLayoutItem(pNewFormItem);
diff --git a/xfa/fxfa/parser/cxfa_document.cpp b/xfa/fxfa/parser/cxfa_document.cpp
index 01ba320..cf6f3cc 100644
--- a/xfa/fxfa/parser/cxfa_document.cpp
+++ b/xfa/fxfa/parser/cxfa_document.cpp
@@ -69,7 +69,7 @@
     CXFA_NodeIterator sIterator(pDestNode);
     for (CXFA_Node* pNode = sIterator.GetCurrent(); pNode;
          pNode = sIterator.MoveToNext()) {
-      pNode->SetFlag(XFA_NodeFlag_UnusedNode, true);
+      pNode->SetFlag(XFA_NodeFlag_UnusedNode);
     }
   }
   pDestNode->SetTemplateNode(pProtoNode);
diff --git a/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp b/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp
index 88dcd1b..d4506c7 100644
--- a/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp
+++ b/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp
@@ -1552,7 +1552,7 @@
         pNode->SetBindingNode(nullptr);
       }
     }
-    pNode->SetFlag(XFA_NodeFlag_UnusedNode, true);
+    pNode->SetFlag(XFA_NodeFlag_UnusedNode);
   }
 }
 
diff --git a/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp b/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp
index d6178bf..c6b76b8 100644
--- a/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp
+++ b/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp
@@ -198,7 +198,7 @@
 }
 
 void SetLayoutGeneratedNodeFlag(CXFA_Node* pNode) {
-  pNode->SetFlag(XFA_NodeFlag_LayoutGeneratedNode, false);
+  pNode->SetFlag(XFA_NodeFlag_LayoutGeneratedNode);
   pNode->ClearFlag(XFA_NodeFlag_UnusedNode);
 }
 
@@ -337,7 +337,7 @@
       return false;
 
     m_pTemplatePageSetRoot->InsertChild(pPageArea, nullptr);
-    pPageArea->SetFlag(XFA_NodeFlag_Initialized, true);
+    pPageArea->SetFlagAndNotify(XFA_NodeFlag_Initialized);
   }
   CXFA_ContentArea* pContentArea =
       pPageArea->GetChild<CXFA_ContentArea>(0, XFA_Element::ContentArea, false);
@@ -348,7 +348,7 @@
       return false;
 
     pPageArea->InsertChild(pContentArea, nullptr);
-    pContentArea->SetFlag(XFA_NodeFlag_Initialized, true);
+    pContentArea->SetFlagAndNotify(XFA_NodeFlag_Initialized);
     pContentArea->JSObject()->SetMeasure(
         XFA_Attribute::X, CXFA_Measurement(0.25f, XFA_Unit::In), false);
     pContentArea->JSObject()->SetMeasure(
@@ -367,7 +367,7 @@
       return false;
 
     pPageArea->InsertChild(pMedium, nullptr);
-    pMedium->SetFlag(XFA_NodeFlag_Initialized, true);
+    pMedium->SetFlagAndNotify(XFA_NodeFlag_Initialized);
     pMedium->JSObject()->SetMeasure(
         XFA_Attribute::Short, CXFA_Measurement(8.5f, XFA_Unit::In), false);
     pMedium->JSObject()->SetMeasure(
@@ -1641,7 +1641,7 @@
             sIterator(pCurLayoutItem->m_pFormNode);
         for (CXFA_Node* pNode = sIterator.GetCurrent(); pNode;
              pNode = sIterator.MoveToNext()) {
-          pNode->SetFlag(XFA_NodeFlag_UnusedNode, false);
+          pNode->SetFlag(XFA_NodeFlag_UnusedNode);
         }
       }
     }
@@ -1701,7 +1701,7 @@
           pNode->SetBindingNode(nullptr);
         }
       }
-      pNode->SetFlag(XFA_NodeFlag_UnusedNode, true);
+      pNode->SetFlag(XFA_NodeFlag_UnusedNode);
     }
   }
 
@@ -1824,7 +1824,7 @@
       pFormToplevelSubform->InsertChild(pPendingPageSet, nullptr);
     }
     pDocument->DataMerge_UpdateBindingRelations(pPendingPageSet);
-    pPendingPageSet->SetFlag(XFA_NodeFlag_Initialized, true);
+    pPendingPageSet->SetFlagAndNotify(XFA_NodeFlag_Initialized);
   }
 
   CXFA_Node* pPageSet = GetRootLayoutItem()->m_pFormNode;
@@ -1861,11 +1861,11 @@
           pNode = pNext;
         } else {
           pNode->ClearFlag(XFA_NodeFlag_UnusedNode);
-          pNode->SetFlag(XFA_NodeFlag_Initialized, true);
+          pNode->SetFlagAndNotify(XFA_NodeFlag_Initialized);
           pNode = sIterator.MoveToNext();
         }
       } else {
-        pNode->SetFlag(XFA_NodeFlag_Initialized, true);
+        pNode->SetFlagAndNotify(XFA_NodeFlag_Initialized);
         pNode = sIterator.MoveToNext();
       }
     }
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index 58b14cd..46e601d 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -566,7 +566,7 @@
       pCloneXML = m_pXMLNode->Clone();
     }
     pClone->SetXMLMappingNode(pCloneXML.release());
-    pClone->SetFlag(XFA_NodeFlag_OwnXMLNode, false);
+    pClone->SetFlag(XFA_NodeFlag_OwnXMLNode);
   }
   if (bRecursive) {
     for (CXFA_Node* pChild = GetFirstChild(); pChild;
@@ -574,7 +574,7 @@
       pClone->InsertChild(pChild->Clone(bRecursive), nullptr);
     }
   }
-  pClone->SetFlag(XFA_NodeFlag_Initialized, true);
+  pClone->SetFlagAndNotify(XFA_NodeFlag_Initialized);
   pClone->SetBindingNode(nullptr);
   return pClone;
 }
@@ -748,7 +748,7 @@
   CXFA_Node* pNewNode = m_pDocument->CreateNode(GetPacketType(), *property);
   if (pNewNode) {
     InsertChild(pNewNode, nullptr);
-    pNewNode->SetFlag(XFA_NodeFlag_Initialized, true);
+    pNewNode->SetFlagAndNotify(XFA_NodeFlag_Initialized);
     nodes.push_back(pNewNode);
   }
   return nodes;
@@ -756,7 +756,7 @@
 
 CXFA_Node* CXFA_Node::CreateSamePacketNode(XFA_Element eType) {
   CXFA_Node* pNode = m_pDocument->CreateNode(m_ePacket, eType);
-  pNode->SetFlag(XFA_NodeFlag_Initialized, true);
+  pNode->SetFlagAndNotify(XFA_NodeFlag_Initialized);
   return pNode;
 }
 
@@ -776,7 +776,7 @@
       pClone->InsertChild(pChild->CloneTemplateToForm(bRecursive), nullptr);
     }
   }
-  pClone->SetFlag(XFA_NodeFlag_Initialized, true);
+  pClone->SetFlagAndNotify(XFA_NodeFlag_Initialized);
   return pClone;
 }
 
@@ -1186,7 +1186,7 @@
     PDFIUM_IMMEDIATE_CRASH();
   }
 
-  pNode->SetFlag(XFA_NodeFlag_HasRemovedChildren, true);
+  pNode->SetFlag(XFA_NodeFlag_HasRemovedChildren);
 
   if (first_child_ == pNode && last_child_ == pNode) {
     first_child_ = nullptr;
@@ -1236,7 +1236,7 @@
   } else {
     m_pXMLNode->RemoveChildNode(pNode->m_pXMLNode);
   }
-  pNode->SetFlag(XFA_NodeFlag_OwnXMLNode, false);
+  pNode->SetFlag(XFA_NodeFlag_OwnXMLNode);
 }
 
 CXFA_Node* CXFA_Node::GetFirstChildByName(const WideStringView& wsName) const {
@@ -1325,8 +1325,10 @@
   return false;
 }
 
-void CXFA_Node::SetFlag(uint32_t dwFlag, bool bNotify) {
-  if (dwFlag == XFA_NodeFlag_Initialized && bNotify && !IsInitialized()) {
+void CXFA_Node::SetFlagAndNotify(uint32_t dwFlag) {
+  ASSERT(dwFlag == XFA_NodeFlag_Initialized);
+
+  if (!IsInitialized()) {
     CXFA_FFNotify* pNotify = m_pDocument->GetNotify();
     if (pNotify) {
       pNotify->OnNodeReady(this);
@@ -1335,6 +1337,10 @@
   m_uNodeFlags |= dwFlag;
 }
 
+void CXFA_Node::SetFlag(uint32_t dwFlag) {
+  m_uNodeFlags |= dwFlag;
+}
+
 void CXFA_Node::ClearFlag(uint32_t dwFlag) {
   m_uNodeFlags &= ~dwFlag;
 }
@@ -1372,7 +1378,7 @@
   if (!m_pXMLNode) {
     WideString wsTag(JSObject()->GetCData(XFA_Attribute::Name));
     m_pXMLNode = new CFX_XMLElement(wsTag);
-    SetFlag(XFA_NodeFlag_OwnXMLNode, false);
+    SetFlag(XFA_NodeFlag_OwnXMLNode);
   }
   return m_pXMLNode;
 }
@@ -2010,7 +2016,7 @@
     }
     if (pAppProvider->MsgBox(wsScriptMsg, wsTitle, XFA_MBICON_Warning,
                              XFA_MB_YesNo) == XFA_IDYes) {
-      SetFlag(XFA_NodeFlag_UserInteractive, false);
+      SetFlag(XFA_NodeFlag_UserInteractive);
     }
     return;
   }
@@ -2061,7 +2067,7 @@
       }
       if (pAppProvider->MsgBox(wsFormatMsg, wsTitle, XFA_MBICON_Warning,
                                XFA_MB_YesNo) == XFA_IDYes) {
-        SetFlag(XFA_NodeFlag_UserInteractive, false);
+        SetFlag(XFA_NodeFlag_UserInteractive);
       }
       return XFA_EVENTERROR_Success;
     }
@@ -2128,7 +2134,7 @@
       }
       if (pAppProvider->MsgBox(wsNullMsg, wsTitle, XFA_MBICON_Warning,
                                XFA_MB_YesNo) == XFA_IDYes) {
-        SetFlag(XFA_NodeFlag_UserInteractive, false);
+        SetFlag(XFA_NodeFlag_UserInteractive);
       }
       return XFA_EVENTERROR_Error;
     }
diff --git a/xfa/fxfa/parser/cxfa_node.h b/xfa/fxfa/parser/cxfa_node.h
index f5eb2be..f34bd9b 100644
--- a/xfa/fxfa/parser/cxfa_node.h
+++ b/xfa/fxfa/parser/cxfa_node.h
@@ -115,7 +115,8 @@
 
   XFA_PacketType GetPacketType() const { return m_ePacket; }
 
-  void SetFlag(uint32_t dwFlag, bool bNotify);
+  void SetFlag(uint32_t dwFlag);
+  void SetFlagAndNotify(uint32_t dwFlag);
   void ClearFlag(uint32_t dwFlag);
 
   CXFA_Node* CreateInstanceIfPossible(bool bDataMerge);
diff --git a/xfa/fxfa/parser/cxfa_simple_parser.cpp b/xfa/fxfa/parser/cxfa_simple_parser.cpp
index 4249869..7424913 100644
--- a/xfa/fxfa/parser/cxfa_simple_parser.cpp
+++ b/xfa/fxfa/parser/cxfa_simple_parser.cpp
@@ -429,7 +429,7 @@
 
           pXFANode->InsertChild(pXFAChild, nullptr);
           pXFAChild->SetXMLMappingNode(pXMLChild);
-          pXFAChild->SetFlag(XFA_NodeFlag_Initialized, false);
+          pXFAChild->SetFlag(XFA_NodeFlag_Initialized);
           break;
         }
       }
@@ -760,7 +760,7 @@
 
     pNode->SetXMLMappingNode(pDataXMLNode);
     if (pDataXMLNode != pXMLDocumentNode)
-      pNode->SetFlag(XFA_NodeFlag_OwnXMLNode, false);
+      pNode->SetFlag(XFA_NodeFlag_OwnXMLNode);
     return pNode;
   }
   return nullptr;
@@ -1067,7 +1067,7 @@
                                             XFA_AttributeEnum::MetaData, false);
           pXFAChild->InsertChild(pXFAMetaData, nullptr);
           pXFAMetaData->SetXMLMappingNode(pXMLElement);
-          pXFAMetaData->SetFlag(XFA_NodeFlag_Initialized, false);
+          pXFAMetaData->SetFlag(XFA_NodeFlag_Initialized);
         }
 
         if (!bNeedValue) {
@@ -1081,7 +1081,7 @@
           ParseDataValue(pXFAChild, pXMLChild, XFA_PacketType::Datasets);
 
         pXFAChild->SetXMLMappingNode(pXMLElement);
-        pXFAChild->SetFlag(XFA_NodeFlag_Initialized, false);
+        pXFAChild->SetFlag(XFA_NodeFlag_Initialized);
         continue;
       }
       case FX_XMLNODE_CharData:
@@ -1100,7 +1100,7 @@
                                         false);
         pXFANode->InsertChild(pXFAChild, nullptr);
         pXFAChild->SetXMLMappingNode(pXMLText);
-        pXFAChild->SetFlag(XFA_NodeFlag_Initialized, false);
+        pXFAChild->SetFlag(XFA_NodeFlag_Initialized);
         continue;
       }
       default:
@@ -1151,7 +1151,7 @@
                                           false, false);
           pXFANode->InsertChild(pXFAChild, nullptr);
           pXFAChild->SetXMLMappingNode(pXMLCurValueNode);
-          pXFAChild->SetFlag(XFA_NodeFlag_Initialized, false);
+          pXFAChild->SetFlag(XFA_NodeFlag_Initialized);
           wsValueTextBuf << wsCurValue;
           wsCurValueTextBuf.Clear();
         }
@@ -1169,7 +1169,7 @@
       ParseDataValue(pXFAChild, pXMLChild, ePacketID);
       pXFANode->InsertChild(pXFAChild, nullptr);
       pXFAChild->SetXMLMappingNode(pXMLChild);
-      pXFAChild->SetFlag(XFA_NodeFlag_Initialized, false);
+      pXFAChild->SetFlag(XFA_NodeFlag_Initialized);
       WideString wsCurValue =
           pXFAChild->JSObject()->GetCData(XFA_Attribute::Value);
       wsValueTextBuf << wsCurValue;
@@ -1189,7 +1189,7 @@
                                         false);
         pXFANode->InsertChild(pXFAChild, nullptr);
         pXFAChild->SetXMLMappingNode(pXMLCurValueNode);
-        pXFAChild->SetFlag(XFA_NodeFlag_Initialized, false);
+        pXFAChild->SetFlag(XFA_NodeFlag_Initialized);
       }
       wsValueTextBuf << wsCurValue;
       wsCurValueTextBuf.Clear();
diff --git a/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp b/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp
index b06c9ce..8ad38af 100644
--- a/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp
+++ b/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp
@@ -729,7 +729,7 @@
         pOccurNode->ClearFlag(XFA_NodeFlag_UnusedNode);
     }
     if (pInstMgrNode) {
-      pInstMgrNode->SetFlag(XFA_NodeFlag_Initialized, true);
+      pInstMgrNode->SetFlagAndNotify(XFA_NodeFlag_Initialized);
       pSearchArray = &subformArray;
       if (pFormParentNode->GetElementType() == XFA_Element::PageArea) {
         bOneInstance = true;
@@ -1029,7 +1029,7 @@
     pDataNode->JSObject()->SetCData(XFA_Attribute::Name, wsName, false, false);
     pDataNode->CreateXMLMappingNode();
     pDataParent->InsertChild(pDataNode, nullptr);
-    pDataNode->SetFlag(XFA_NodeFlag_Initialized, false);
+    pDataNode->SetFlag(XFA_NodeFlag_Initialized);
     return pDataNode;
   }
 
@@ -1065,7 +1065,7 @@
     }
     pDataParent->InsertChild(pDataNode, nullptr);
     pDataNode->SetDataDescriptionNode(pDDNode);
-    pDataNode->SetFlag(XFA_NodeFlag_Initialized, false);
+    pDataNode->SetFlag(XFA_NodeFlag_Initialized);
     return pDataNode;
   }
   return nullptr;
@@ -1285,7 +1285,7 @@
         }
       }
     }
-    pExistingNode->SetFlag(XFA_NodeFlag_Initialized, true);
+    pExistingNode->SetFlagAndNotify(XFA_NodeFlag_Initialized);
     return pExistingNode;
   }
 
@@ -1448,7 +1448,7 @@
         sIterator(pFormRoot);
     for (CXFA_Node* pNode = sIterator.MoveToNext(); pNode;
          pNode = sIterator.MoveToNext()) {
-      pNode->SetFlag(XFA_NodeFlag_UnusedNode, true);
+      pNode->SetFlag(XFA_NodeFlag_UnusedNode);
     }
   }
 
@@ -1513,11 +1513,11 @@
         pNode = pNext;
       } else {
         pNode->ClearFlag(XFA_NodeFlag_UnusedNode);
-        pNode->SetFlag(XFA_NodeFlag_Initialized, true);
+        pNode->SetFlagAndNotify(XFA_NodeFlag_Initialized);
         pNode = sIterator.MoveToNext();
       }
     } else {
-      pNode->SetFlag(XFA_NodeFlag_Initialized, true);
+      pNode->SetFlagAndNotify(XFA_NodeFlag_Initialized);
       pNode = sIterator.MoveToNext();
     }
   }