Make XFA_NodeFlag an enum class
-- Remove argument from SetFlagAndNotify() and rename.
Change-Id: Id9319b7568a9ff9929a19429876152b5ce15c8c2
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/84076
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/fxjs/xfa/cjx_node.cpp b/fxjs/xfa/cjx_node.cpp
index 788d3ee..fbe947d 100644
--- a/fxjs/xfa/cjx_node.cpp
+++ b/fxjs/xfa/cjx_node.cpp
@@ -284,7 +284,7 @@
CXFA_Node* pItem = pNewChild->GetNextSibling();
pFakeRoot->RemoveChildAndNotify(pNewChild, true);
GetXFANode()->InsertChildAndNotify(index++, pNewChild);
- pNewChild->SetFlagAndNotify(XFA_NodeFlag_Initialized);
+ pNewChild->SetInitializedFlagAndNotify();
pNewChild = pItem;
}
@@ -312,7 +312,7 @@
CXFA_Node* pItem = pChild->GetNextSibling();
pFakeRoot->RemoveChildAndNotify(pChild, true);
GetXFANode()->InsertChildAndNotify(pChild, nullptr);
- pChild->SetFlagAndNotify(XFA_NodeFlag_Initialized);
+ pChild->SetInitializedFlagAndNotify();
pChild = pItem;
}
}
@@ -320,7 +320,7 @@
if (pFakeXMLRoot) {
pFakeRoot->SetXMLMappingNode(std::move(pFakeXMLRoot));
}
- pFakeRoot->SetFlag(XFA_NodeFlag_HasRemovedChildren);
+ pFakeRoot->SetFlag(XFA_NodeFlag::kHasRemovedChildren);
return CJS_Result::Success();
}
diff --git a/xfa/fxfa/cxfa_ffdocview.cpp b/xfa/fxfa/cxfa_ffdocview.cpp
index 052b750..65b1173 100644
--- a/xfa/fxfa/cxfa_ffdocview.cpp
+++ b/xfa/fxfa/cxfa_ffdocview.cpp
@@ -250,7 +250,7 @@
return true;
AddValidateNode(pNode);
- validate->SetFlag(XFA_NodeFlag_NeedsInitApp);
+ validate->SetFlag(XFA_NodeFlag::kNeedsInitApp);
return true;
}
diff --git a/xfa/fxfa/cxfa_fffield.cpp b/xfa/fxfa/cxfa_fffield.cpp
index 6f9ba26..1c167fa 100644
--- a/xfa/fxfa/cxfa_fffield.cpp
+++ b/xfa/fxfa/cxfa_fffield.cpp
@@ -700,7 +700,7 @@
static_cast<uint32_t>(AlertIcon::kWarning),
static_cast<uint32_t>(AlertButton::kYesNo)) ==
static_cast<uint32_t>(AlertReturn::kYes)) {
- pNode->SetFlag(XFA_NodeFlag_UserInteractive);
+ pNode->SetFlag(XFA_NodeFlag::kUserInteractive);
return 1;
}
return 0;
@@ -708,7 +708,7 @@
case XFA_AttributeValue::Ignore:
return 0;
case XFA_AttributeValue::Disabled:
- pNode->SetFlag(XFA_NodeFlag_UserInteractive);
+ pNode->SetFlag(XFA_NodeFlag::kUserInteractive);
return 1;
default:
return 1;
diff --git a/xfa/fxfa/cxfa_ffnotify.cpp b/xfa/fxfa/cxfa_ffnotify.cpp
index c96869b..ce5dc49 100644
--- a/xfa/fxfa/cxfa_ffnotify.cpp
+++ b/xfa/fxfa/cxfa_ffnotify.cpp
@@ -344,7 +344,7 @@
pDocView->AddBindItem(static_cast<CXFA_BindItems*>(pNode));
break;
case XFA_Element::Validate:
- pNode->SetFlag(XFA_NodeFlag_NeedsInitApp);
+ pNode->SetFlag(XFA_NodeFlag::kNeedsInitApp);
break;
default:
break;
diff --git a/xfa/fxfa/layout/cxfa_contentlayoutprocessor.cpp b/xfa/fxfa/layout/cxfa_contentlayoutprocessor.cpp
index b7a13ec..878821d 100644
--- a/xfa/fxfa/layout/cxfa_contentlayoutprocessor.cpp
+++ b/xfa/fxfa/layout/cxfa_contentlayoutprocessor.cpp
@@ -1491,7 +1491,7 @@
pNode->SetBindingNode(nullptr);
}
}
- pNode->SetFlag(XFA_NodeFlag_UnusedNode);
+ pNode->SetFlag(XFA_NodeFlag::kUnusedNode);
}
}
diff --git a/xfa/fxfa/layout/cxfa_viewlayoutprocessor.cpp b/xfa/fxfa/layout/cxfa_viewlayoutprocessor.cpp
index 86f36fc..674771d 100644
--- a/xfa/fxfa/layout/cxfa_viewlayoutprocessor.cpp
+++ b/xfa/fxfa/layout/cxfa_viewlayoutprocessor.cpp
@@ -228,8 +228,8 @@
}
void SetLayoutGeneratedNodeFlag(CXFA_Node* pNode) {
- pNode->SetFlag(XFA_NodeFlag_LayoutGeneratedNode);
- pNode->ClearFlag(XFA_NodeFlag_UnusedNode);
+ pNode->SetFlag(XFA_NodeFlag::kLayoutGeneratedNode);
+ pNode->ClearFlag(XFA_NodeFlag::kUnusedNode);
}
// Note: Returning nullptr is not the same as returning pdfium::nullopt.
@@ -429,7 +429,7 @@
return false;
m_pPageSetNode->InsertChildAndNotify(pPageArea, nullptr);
- pPageArea->SetFlagAndNotify(XFA_NodeFlag_Initialized);
+ pPageArea->SetInitializedFlagAndNotify();
}
CXFA_ContentArea* pContentArea =
pPageArea->GetChild<CXFA_ContentArea>(0, XFA_Element::ContentArea, false);
@@ -440,7 +440,7 @@
return false;
pPageArea->InsertChildAndNotify(pContentArea, nullptr);
- pContentArea->SetFlagAndNotify(XFA_NodeFlag_Initialized);
+ pContentArea->SetInitializedFlagAndNotify();
pContentArea->JSObject()->SetMeasure(
XFA_Attribute::X, CXFA_Measurement(0.25f, XFA_Unit::In), false);
pContentArea->JSObject()->SetMeasure(
@@ -459,7 +459,7 @@
return false;
pPageArea->InsertChildAndNotify(pMedium, nullptr);
- pMedium->SetFlagAndNotify(XFA_NodeFlag_Initialized);
+ pMedium->SetInitializedFlagAndNotify();
pMedium->JSObject()->SetMeasure(
XFA_Attribute::Short, CXFA_Measurement(8.5f, XFA_Unit::In), false);
pMedium->JSObject()->SetMeasure(
@@ -1705,7 +1705,7 @@
pRootPageSetViewItem->GetFormNode()->JSObject()->SetLayoutItem(nullptr);
}
pRootPageSetViewItem->SetFormNode(pPendingPageSet);
- pPendingPageSet->ClearFlag(XFA_NodeFlag_UnusedNode);
+ pPendingPageSet->ClearFlag(XFA_NodeFlag::kUnusedNode);
for (CXFA_ViewLayoutItem* pViewItem = iterator.MoveToNext(); pViewItem;
pViewItem = iterator.MoveToNext()) {
CXFA_Node* pNode = pViewItem->GetFormNode();
@@ -1804,7 +1804,7 @@
}
}
pDocument->DataMerge_UpdateBindingRelations(pPendingPageSet);
- pPendingPageSet->SetFlagAndNotify(XFA_NodeFlag_Initialized);
+ pPendingPageSet->SetInitializedFlagAndNotify();
}
CXFA_Node* pPageSet = GetRootLayoutItem()->GetFormNode();
@@ -1840,12 +1840,12 @@
pNode->GetParent()->RemoveChildAndNotify(pNode, true);
pNode = pNext;
} else {
- pNode->ClearFlag(XFA_NodeFlag_UnusedNode);
- pNode->SetFlagAndNotify(XFA_NodeFlag_Initialized);
+ pNode->ClearFlag(XFA_NodeFlag::kUnusedNode);
+ pNode->SetInitializedFlagAndNotify();
pNode = sIterator.MoveToNext();
}
} else {
- pNode->SetFlagAndNotify(XFA_NodeFlag_Initialized);
+ pNode->SetInitializedFlagAndNotify();
pNode = sIterator.MoveToNext();
}
}
diff --git a/xfa/fxfa/parser/cxfa_document.cpp b/xfa/fxfa/parser/cxfa_document.cpp
index 4d1ae6f..484ad2b 100644
--- a/xfa/fxfa/parser/cxfa_document.cpp
+++ b/xfa/fxfa/parser/cxfa_document.cpp
@@ -141,7 +141,7 @@
if (pFormChild->GetElementType() == pProtoNode->GetElementType() &&
pFormChild->GetNameHash() == pProtoNode->GetNameHash() &&
pFormChild->IsUnusedNode()) {
- pFormChild->ClearFlag(XFA_NodeFlag_UnusedNode);
+ pFormChild->ClearFlag(XFA_NodeFlag::kUnusedNode);
pExistingNode = pFormChild;
break;
}
@@ -165,7 +165,7 @@
CXFA_NodeIterator sIterator(pDestNode);
for (CXFA_Node* pNode = sIterator.GetCurrent(); pNode;
pNode = sIterator.MoveToNext()) {
- pNode->SetFlag(XFA_NodeFlag_UnusedNode);
+ pNode->SetFlag(XFA_NodeFlag::kUnusedNode);
}
}
pDestNode->SetTemplateNode(pProtoNode);
@@ -177,7 +177,7 @@
CXFA_NodeIterator sIterator(pDestNode);
for (CXFA_Node* pNode = sIterator.GetCurrent(); pNode;
pNode = sIterator.MoveToNext()) {
- pNode->ClearFlag(XFA_NodeFlag_UnusedNode);
+ pNode->ClearFlag(XFA_NodeFlag::kUnusedNode);
}
}
}
@@ -214,7 +214,7 @@
}
pFormParent->RemoveChildAndNotify(pExistingNode, true);
pFormParent->InsertChildAndNotify(pExistingNode, nullptr);
- pExistingNode->ClearFlag(XFA_NodeFlag_UnusedNode);
+ pExistingNode->ClearFlag(XFA_NodeFlag::kUnusedNode);
pExistingNode->SetTemplateNode(pTemplateNode);
return pExistingNode;
}
@@ -740,7 +740,7 @@
pDataNode->JSObject()->SetCData(XFA_Attribute::Name, wsName);
pDataNode->CreateXMLMappingNode();
pDataParent->InsertChildAndNotify(pDataNode, nullptr);
- pDataNode->SetFlag(XFA_NodeFlag_Initialized);
+ pDataNode->SetFlag(XFA_NodeFlag::kInitialized);
return pDataNode;
}
@@ -778,7 +778,7 @@
}
pDataParent->InsertChildAndNotify(pDataNode, nullptr);
pDataNode->SetDataDescriptionNode(pDDNode);
- pDataNode->SetFlag(XFA_NodeFlag_Initialized);
+ pDataNode->SetFlag(XFA_NodeFlag::kInitialized);
return pDataNode;
}
return nullptr;
@@ -855,10 +855,10 @@
pOccurNode =
pInstMgrNode->GetFirstChildByClass<CXFA_Occur>(XFA_Element::Occur);
if (pOccurNode)
- pOccurNode->ClearFlag(XFA_NodeFlag_UnusedNode);
+ pOccurNode->ClearFlag(XFA_NodeFlag::kUnusedNode);
}
if (pInstMgrNode) {
- pInstMgrNode->SetFlagAndNotify(XFA_NodeFlag_Initialized);
+ pInstMgrNode->SetInitializedFlagAndNotify();
pSearchArray = &subformArray;
if (pFormParentNode->GetElementType() == XFA_Element::PageArea) {
bOneInstance = true;
@@ -1746,7 +1746,7 @@
sIterator(pFormRoot);
for (CXFA_Node* pNode = sIterator.MoveToNext(); pNode;
pNode = sIterator.MoveToNext()) {
- pNode->SetFlag(XFA_NodeFlag_UnusedNode);
+ pNode->SetFlag(XFA_NodeFlag::kUnusedNode);
}
}
@@ -1813,12 +1813,12 @@
pNode->GetParent()->RemoveChildAndNotify(pNode, true);
pNode = pNext;
} else {
- pNode->ClearFlag(XFA_NodeFlag_UnusedNode);
- pNode->SetFlagAndNotify(XFA_NodeFlag_Initialized);
+ pNode->ClearFlag(XFA_NodeFlag::kUnusedNode);
+ pNode->SetInitializedFlagAndNotify();
pNode = sIterator.MoveToNext();
}
} else {
- pNode->SetFlagAndNotify(XFA_NodeFlag_Initialized);
+ pNode->SetInitializedFlagAndNotify();
pNode = sIterator.MoveToNext();
}
}
@@ -1875,7 +1875,7 @@
pNode->SetBindingNode(nullptr);
}
}
- pNode->SetFlag(XFA_NodeFlag_UnusedNode);
+ pNode->SetFlag(XFA_NodeFlag::kUnusedNode);
}
}
}
diff --git a/xfa/fxfa/parser/cxfa_document_builder.cpp b/xfa/fxfa/parser/cxfa_document_builder.cpp
index 9933e7c..502e158 100644
--- a/xfa/fxfa/parser/cxfa_document_builder.cpp
+++ b/xfa/fxfa/parser/cxfa_document_builder.cpp
@@ -276,7 +276,7 @@
pXFANode->InsertChildAndNotify(pXFAChild, nullptr);
pXFAChild->SetXMLMappingNode(pXMLChild);
- pXFAChild->SetFlag(XFA_NodeFlag_Initialized);
+ pXFAChild->SetFlag(XFA_NodeFlag::kInitialized);
break;
}
}
@@ -859,7 +859,7 @@
XFA_Attribute::Contains, XFA_AttributeValue::MetaData, false);
pXFAChild->InsertChildAndNotify(pXFAMetaData, nullptr);
pXFAMetaData->SetXMLMappingNode(pXMLElement);
- pXFAMetaData->SetFlag(XFA_NodeFlag_Initialized);
+ pXFAMetaData->SetFlag(XFA_NodeFlag::kInitialized);
}
if (!bNeedValue)
@@ -872,7 +872,7 @@
ParseDataValue(pXFAChild, pXMLChild, XFA_PacketType::Datasets);
pXFAChild->SetXMLMappingNode(pXMLElement);
- pXFAChild->SetFlag(XFA_NodeFlag_Initialized);
+ pXFAChild->SetFlag(XFA_NodeFlag::kInitialized);
continue;
}
case CFX_XMLNode::Type::kCharData:
@@ -890,7 +890,7 @@
pXFAChild->JSObject()->SetCData(XFA_Attribute::Value, wsText);
pXFANode->InsertChildAndNotify(pXFAChild, nullptr);
pXFAChild->SetXMLMappingNode(pXMLText);
- pXFAChild->SetFlag(XFA_NodeFlag_Initialized);
+ pXFAChild->SetFlag(XFA_NodeFlag::kInitialized);
continue;
}
default:
@@ -940,7 +940,7 @@
pXFAChild->JSObject()->SetCData(XFA_Attribute::Value, wsCurValue);
pXFANode->InsertChildAndNotify(pXFAChild, nullptr);
pXFAChild->SetXMLMappingNode(pXMLCurValueNode);
- pXFAChild->SetFlag(XFA_NodeFlag_Initialized);
+ pXFAChild->SetFlag(XFA_NodeFlag::kInitialized);
wsValueTextBuf << wsCurValue;
wsCurValueTextBuf.Clear();
}
@@ -956,7 +956,7 @@
ParseDataValue(pXFAChild, pXMLChild, ePacketID);
pXFANode->InsertChildAndNotify(pXFAChild, nullptr);
pXFAChild->SetXMLMappingNode(pXMLChild);
- pXFAChild->SetFlag(XFA_NodeFlag_Initialized);
+ pXFAChild->SetFlag(XFA_NodeFlag::kInitialized);
WideString wsCurValue =
pXFAChild->JSObject()->GetCData(XFA_Attribute::Value);
wsValueTextBuf << wsCurValue;
@@ -975,7 +975,7 @@
pXFAChild->JSObject()->SetCData(XFA_Attribute::Value, wsCurValue);
pXFANode->InsertChildAndNotify(pXFAChild, nullptr);
pXFAChild->SetXMLMappingNode(pXMLCurValueNode);
- pXFAChild->SetFlag(XFA_NodeFlag_Initialized);
+ pXFAChild->SetFlag(XFA_NodeFlag::kInitialized);
}
wsValueTextBuf << wsCurValue;
wsCurValueTextBuf.Clear();
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index 0cb8edf..ab76d9c 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -1039,7 +1039,7 @@
pClone->InsertChildAndNotify(pChild->Clone(bRecursive), nullptr);
}
}
- pClone->SetFlagAndNotify(XFA_NodeFlag_Initialized);
+ pClone->SetInitializedFlagAndNotify();
pClone->SetBindingNode(nullptr);
return pClone;
}
@@ -1149,7 +1149,7 @@
return nullptr;
InsertChildAndNotify(pNewNode, nullptr);
- pNewNode->SetFlagAndNotify(XFA_NodeFlag_Initialized);
+ pNewNode->SetInitializedFlagAndNotify();
}
return pNewNode;
}
@@ -1247,7 +1247,7 @@
m_pDocument->CreateNode(GetPacketType(), property.value());
if (pNewNode) {
InsertChildAndNotify(pNewNode, nullptr);
- pNewNode->SetFlagAndNotify(XFA_NodeFlag_Initialized);
+ pNewNode->SetInitializedFlagAndNotify();
nodes.push_back(pNewNode);
}
return nodes;
@@ -1258,7 +1258,7 @@
if (!pNode)
return nullptr;
- pNode->SetFlagAndNotify(XFA_NodeFlag_Initialized);
+ pNode->SetInitializedFlagAndNotify();
return pNode;
}
@@ -1279,7 +1279,7 @@
nullptr);
}
}
- pClone->SetFlagAndNotify(XFA_NodeFlag_Initialized);
+ pClone->SetInitializedFlagAndNotify();
return pClone;
}
@@ -1320,7 +1320,7 @@
binding_nodes_.clear();
binding_nodes_.push_back(pOldFormItem);
binding_nodes_.push_back(pFormNode);
- m_uNodeFlags |= XFA_NodeFlag_BindFormItems;
+ m_uNodeFlags |= XFA_NodeFlag::kBindFormItems;
}
bool CXFA_Node::RemoveBindItem(CXFA_Node* pFormNode) {
@@ -1331,7 +1331,7 @@
binding_nodes_.erase(it);
if (binding_nodes_.size() == 1) {
- m_uNodeFlags &= ~XFA_NodeFlag_BindFormItems;
+ m_uNodeFlags.Clear(XFA_NodeFlag::kBindFormItems);
return true;
}
return !binding_nodes_.empty();
@@ -1590,7 +1590,7 @@
void CXFA_Node::InsertChildAndNotify(CXFA_Node* pNode, CXFA_Node* pBeforeNode) {
CHECK(!pNode->GetParent());
CHECK(!pBeforeNode || pBeforeNode->GetParent() == this);
- pNode->ClearFlag(XFA_NodeFlag_HasRemovedChildren);
+ pNode->ClearFlag(XFA_NodeFlag::kHasRemovedChildren);
InsertBefore(pNode, pBeforeNode);
CXFA_FFNotify* pNotify = m_pDocument->GetNotify();
@@ -1610,7 +1610,7 @@
if (pNode->GetParent() != this)
return;
- pNode->SetFlag(XFA_NodeFlag_HasRemovedChildren);
+ pNode->SetFlag(XFA_NodeFlag::kHasRemovedChildren);
GCedTreeNodeMixin<CXFA_Node>::RemoveChild(pNode);
OnRemoved(bNotify);
@@ -1782,29 +1782,26 @@
bool CXFA_Node::HasFlag(XFA_NodeFlag dwFlag) const {
if (m_uNodeFlags & dwFlag)
return true;
- if (dwFlag == XFA_NodeFlag_HasRemovedChildren)
+ if (dwFlag == XFA_NodeFlag::kHasRemovedChildren)
return GetParent() && GetParent()->HasFlag(dwFlag);
return false;
}
-void CXFA_Node::SetFlagAndNotify(uint32_t dwFlag) {
- DCHECK_EQ(dwFlag, XFA_NodeFlag_Initialized);
-
+void CXFA_Node::SetInitializedFlagAndNotify() {
if (!IsInitialized()) {
CXFA_FFNotify* pNotify = m_pDocument->GetNotify();
- if (pNotify) {
+ if (pNotify)
pNotify->OnNodeReady(this);
- }
}
+ m_uNodeFlags |= XFA_NodeFlag::kInitialized;
+}
+
+void CXFA_Node::SetFlag(XFA_NodeFlag dwFlag) {
m_uNodeFlags |= dwFlag;
}
-void CXFA_Node::SetFlag(uint32_t dwFlag) {
- m_uNodeFlags |= dwFlag;
-}
-
-void CXFA_Node::ClearFlag(uint32_t dwFlag) {
- m_uNodeFlags &= ~dwFlag;
+void CXFA_Node::ClearFlag(XFA_NodeFlag dwFlag) {
+ m_uNodeFlags.Clear(dwFlag);
}
bool CXFA_Node::IsAttributeInXML() {
@@ -2512,7 +2509,7 @@
static_cast<uint32_t>(AlertIcon::kWarning),
static_cast<uint32_t>(AlertButton::kYesNo)) ==
static_cast<uint32_t>(AlertReturn::kYes)) {
- SetFlag(XFA_NodeFlag_UserInteractive);
+ SetFlag(XFA_NodeFlag::kUserInteractive);
}
return;
}
@@ -2573,7 +2570,7 @@
static_cast<uint32_t>(AlertIcon::kWarning),
static_cast<uint32_t>(AlertButton::kYesNo)) ==
static_cast<uint32_t>(AlertReturn::kYes)) {
- SetFlag(XFA_NodeFlag_UserInteractive);
+ SetFlag(XFA_NodeFlag::kUserInteractive);
}
return XFA_EventError::kError;
@@ -2640,7 +2637,7 @@
static_cast<uint32_t>(AlertIcon::kWarning),
static_cast<uint32_t>(AlertButton::kYesNo)) ==
static_cast<uint32_t>(AlertReturn::kYes)) {
- SetFlag(XFA_NodeFlag_UserInteractive);
+ SetFlag(XFA_NodeFlag::kUserInteractive);
}
return XFA_EventError::kError;
}
@@ -2678,7 +2675,7 @@
bool bVersionFlag = version < XFA_VERSION_208;
if (bInitDoc) {
- validate->ClearFlag(XFA_NodeFlag_NeedsInitApp);
+ validate->ClearFlag(XFA_NodeFlag::kNeedsInitApp);
} else {
iFormat = ProcessFormatTestValidate(pDocView, validate, bVersionFlag);
if (!bVersionFlag)
@@ -5043,7 +5040,7 @@
CXFA_NodeIterator sIterator(this);
for (CXFA_Node* pNode = sIterator.GetCurrent(); pNode;
pNode = sIterator.MoveToNext()) {
- pNode->SetFlag(XFA_NodeFlag_UnusedNode);
+ pNode->SetFlag(XFA_NodeFlag::kUnusedNode);
}
}
diff --git a/xfa/fxfa/parser/cxfa_node.h b/xfa/fxfa/parser/cxfa_node.h
index ec2b35f..c9c8dd4 100644
--- a/xfa/fxfa/parser/cxfa_node.h
+++ b/xfa/fxfa/parser/cxfa_node.h
@@ -74,17 +74,16 @@
kDataBind,
};
-enum XFA_NodeFlag : uint8_t {
- XFA_NodeFlag_None = 0,
- XFA_NodeFlag_Initialized = 1 << 0,
- XFA_NodeFlag_HasRemovedChildren = 1 << 1,
- XFA_NodeFlag_NeedsInitApp = 1 << 2,
- XFA_NodeFlag_BindFormItems = 1 << 3,
- XFA_NodeFlag_UserInteractive = 1 << 4,
- XFA_NodeFlag_UnusedNode = 1 << 5,
- XFA_NodeFlag_LayoutGeneratedNode = 1 << 6
+enum class XFA_NodeFlag : uint8_t {
+ kNone = 0,
+ kInitialized = 1 << 0,
+ kHasRemovedChildren = 1 << 1,
+ kNeedsInitApp = 1 << 2,
+ kBindFormItems = 1 << 3,
+ kUserInteractive = 1 << 4,
+ kUnusedNode = 1 << 5,
+ kLayoutGeneratedNode = 1 << 6
};
-using XFA_NodeFlagMask = std::underlying_type<XFA_NodeFlag>::type;
enum XFA_PropertyFlag : uint8_t {
XFA_PropertyFlag_OneOf = 1 << 0,
@@ -134,9 +133,9 @@
XFA_PacketType GetPacketType() const { return m_ePacket; }
- void SetFlag(uint32_t dwFlag);
- void SetFlagAndNotify(uint32_t dwFlag);
- void ClearFlag(uint32_t dwFlag);
+ void SetInitializedFlagAndNotify();
+ void SetFlag(XFA_NodeFlag dwFlag);
+ void ClearFlag(XFA_NodeFlag dwFlag);
CXFA_Node* CreateInstanceIfPossible(bool bDataMerge);
int32_t GetCount();
@@ -147,13 +146,13 @@
int32_t iCount,
bool bMoveDataBindingNodes);
- bool IsInitialized() const { return HasFlag(XFA_NodeFlag_Initialized); }
+ bool IsInitialized() const { return HasFlag(XFA_NodeFlag::kInitialized); }
bool IsUserInteractive() const {
- return HasFlag(XFA_NodeFlag_UserInteractive);
+ return HasFlag(XFA_NodeFlag::kUserInteractive);
}
- bool IsUnusedNode() const { return HasFlag(XFA_NodeFlag_UnusedNode); }
+ bool IsUnusedNode() const { return HasFlag(XFA_NodeFlag::kUnusedNode); }
bool IsLayoutGeneratedNode() const {
- return HasFlag(XFA_NodeFlag_LayoutGeneratedNode);
+ return HasFlag(XFA_NodeFlag::kLayoutGeneratedNode);
}
bool PresenceRequiresSpace() const;
@@ -161,7 +160,7 @@
void SetNodeAndDescendantsUnused();
bool HasRemovedChildren() const {
- return HasFlag(XFA_NodeFlag_HasRemovedChildren);
+ return HasFlag(XFA_NodeFlag::kHasRemovedChildren);
}
bool IsAttributeInXML();
@@ -486,8 +485,8 @@
return nullptr;
return binding_nodes_[0];
}
- bool BindsFormItems() const { return HasFlag(XFA_NodeFlag_BindFormItems); }
- bool NeedsInitApp() const { return HasFlag(XFA_NodeFlag_NeedsInitApp); }
+ bool BindsFormItems() const { return HasFlag(XFA_NodeFlag::kBindFormItems); }
+ bool NeedsInitApp() const { return HasFlag(XFA_NodeFlag::kNeedsInitApp); }
void SyncValue(const WideString& wsValue, bool bNotify);
CXFA_Value* GetDefaultValueIfExists();
CXFA_Bind* GetBindIfExists() const;
@@ -518,7 +517,7 @@
UnownedPtr<CFX_XMLNode> xml_node_;
const XFA_PacketType m_ePacket;
uint8_t m_ExecuteRecursionDepth = 0;
- XFA_NodeFlagMask m_uNodeFlags = XFA_NodeFlag_None;
+ Mask<XFA_NodeFlag> m_uNodeFlags = XFA_NodeFlag::kNone;
uint32_t m_dwNameHash = 0;
cppgc::Member<CXFA_Node> m_pAuxNode;
std::vector<cppgc::Member<CXFA_Node>> binding_nodes_;
diff --git a/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp b/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp
index 1897604..9e01931 100644
--- a/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp
+++ b/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp
@@ -59,7 +59,7 @@
pFormParent->RemoveChildAndNotify(pExistingNode, true);
pFormParent->InsertChildAndNotify(pExistingNode, nullptr);
}
- pExistingNode->ClearFlag(XFA_NodeFlag_UnusedNode);
+ pExistingNode->ClearFlag(XFA_NodeFlag::kUnusedNode);
pExistingNode->SetTemplateNode(pTemplateNode);
if (bRecursive && pExistingNode->GetElementType() != XFA_Element::Items) {
for (CXFA_Node* pTemplateChild = pTemplateNode->GetFirstChild();
@@ -70,7 +70,7 @@
}
}
}
- pExistingNode->SetFlagAndNotify(XFA_NodeFlag_Initialized);
+ pExistingNode->SetInitializedFlagAndNotify();
return pExistingNode;
}