Index: xfa/src/fxfa/src/parser/xfa_object_imp.cpp |
diff --git a/xfa/src/fxfa/src/parser/xfa_object_imp.cpp b/xfa/src/fxfa/src/parser/xfa_object_imp.cpp |
index 1829ffdb67908a58d275bbe878a18b3aaafd341b..10d5e24abf29cb85b78a2619724822ed53b86d46 100644 |
--- a/xfa/src/fxfa/src/parser/xfa_object_imp.cpp |
+++ b/xfa/src/fxfa/src/parser/xfa_object_imp.cpp |
@@ -30,12 +30,15 @@ uint32_t CXFA_Object::GetClassHashCode() const { |
} |
XFA_ELEMENT CXFA_Object::GetClassID() const { |
if (IsNode()) { |
- return ((const CXFA_Node*)this)->GetClassID(); |
- } else if (IsOrdinaryObject()) { |
- return ((const CXFA_OrdinaryObject*)this)->GetClassID(); |
- } else if (IsNodeList()) { |
- return ((const CXFA_NodeList*)this)->GetClassID(); |
- } else if (IsOrdinaryList()) { |
+ return AsNode()->GetClassID(); |
+ } |
+ if (IsOrdinaryObject()) { |
+ return AsOrdinaryObject()->GetClassID(); |
+ } |
+ if (IsNodeList()) { |
+ return AsNodeList()->GetClassID(); |
+ } |
+ if (IsOrdinaryList()) { |
return XFA_ELEMENT_List; |
} |
ASSERT(FALSE); |
@@ -329,7 +332,7 @@ void CXFA_Node::SetTemplateNode(CXFA_Node* pTemplateNode) { |
} |
CXFA_Node* CXFA_Node::GetBindData() { |
ASSERT(GetPacketID() == XFA_XDPPACKET_Form); |
- return (CXFA_Node*)GetObject(XFA_ATTRIBUTE_BindingNode); |
+ return static_cast<CXFA_Node*>(GetObject(XFA_ATTRIBUTE_BindingNode)); |
} |
int32_t CXFA_Node::GetBindItems(CXFA_NodeArray& formItems) { |
if (m_uFlags & XFA_NODEFLAG_BindFormItems) { |
@@ -338,7 +341,8 @@ int32_t CXFA_Node::GetBindItems(CXFA_NodeArray& formItems) { |
formItems.Copy(*pItems); |
return formItems.GetSize(); |
} |
- CXFA_Node* pFormNode = (CXFA_Node*)GetObject(XFA_ATTRIBUTE_BindingNode); |
+ CXFA_Node* pFormNode = |
+ static_cast<CXFA_Node*>(GetObject(XFA_ATTRIBUTE_BindingNode)); |
if (pFormNode) { |
formItems.Add(pFormNode); |
} |
@@ -362,7 +366,8 @@ int32_t CXFA_Node::AddBindItem(CXFA_Node* pFormNode) { |
} |
return pItems->GetSize(); |
} |
- CXFA_Node* pOldFormItem = (CXFA_Node*)GetObject(XFA_ATTRIBUTE_BindingNode); |
+ CXFA_Node* pOldFormItem = |
+ static_cast<CXFA_Node*>(GetObject(XFA_ATTRIBUTE_BindingNode)); |
if (!pOldFormItem) { |
SetObject(XFA_ATTRIBUTE_BindingNode, pFormNode); |
return 1; |
@@ -397,7 +402,8 @@ int32_t CXFA_Node::RemoveBindItem(CXFA_Node* pFormNode) { |
} |
return iCount; |
} |
- CXFA_Node* pOldFormItem = (CXFA_Node*)GetObject(XFA_ATTRIBUTE_BindingNode); |
+ CXFA_Node* pOldFormItem = |
+ static_cast<CXFA_Node*>(GetObject(XFA_ATTRIBUTE_BindingNode)); |
if (pOldFormItem == pFormNode) { |
SetObject(XFA_ATTRIBUTE_BindingNode, NULL); |
pOldFormItem = NULL; |
@@ -480,7 +486,7 @@ CXFA_WidgetData* CXFA_Node::GetContainerWidgetData() { |
: NULL; |
} |
FX_BOOL CXFA_Node::GetLocaleName(CFX_WideString& wsLocaleName) { |
- CXFA_Node* pForm = (CXFA_Node*)GetDocument()->GetXFAObject(XFA_HASHCODE_Form); |
+ CXFA_Node* pForm = GetDocument()->GetXFAObject(XFA_HASHCODE_Form)->AsNode(); |
CXFA_Node* pTopSubform = pForm->GetFirstChildByClass(XFA_ELEMENT_Subform); |
FXSYS_assert(pTopSubform); |
CXFA_Node* pLocaleNode = this; |
@@ -494,8 +500,7 @@ FX_BOOL CXFA_Node::GetLocaleName(CFX_WideString& wsLocaleName) { |
if (bLocale) { |
return bLocale; |
} |
- CXFA_Node* pConfig = |
- (CXFA_Node*)GetDocument()->GetXFAObject(XFA_HASHCODE_Config); |
+ CXFA_Node* pConfig = ToNode(GetDocument()->GetXFAObject(XFA_HASHCODE_Config)); |
wsLocaleName = GetDocument()->GetLocalMgr()->GetConfigLocaleName(pConfig); |
if (!wsLocaleName.IsEmpty()) { |
bLocale = TRUE; |
@@ -625,7 +630,7 @@ void CXFA_Node::Script_TreeClass_ResolveNode(CFXJSE_Arguments* pArguments) { |
} |
CXFA_Node* refNode = this; |
if (refNode->GetClassID() == XFA_ELEMENT_Xfa) { |
- refNode = (CXFA_Node*)pScriptContext->GetThisObject(); |
+ refNode = ToNode(pScriptContext->GetThisObject()); |
} |
FX_DWORD dwFlag = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Attributes | |
XFA_RESOLVENODE_Properties | XFA_RESOLVENODE_Parent | |
@@ -674,7 +679,7 @@ void CXFA_Node::Script_TreeClass_ResolveNodes(CFXJSE_Arguments* pArguments) { |
XFA_RESOLVENODE_Siblings; |
CXFA_Node* refNode = this; |
if (refNode->GetClassID() == XFA_ELEMENT_Xfa) { |
- refNode = (CXFA_Node*)m_pDocument->GetScriptContext()->GetThisObject(); |
+ refNode = ToNode(m_pDocument->GetScriptContext()->GetThisObject()); |
} |
Script_Som_ResolveNodeList(hValue, wsExpression, dwFlag, refNode); |
} |
@@ -695,9 +700,8 @@ void CXFA_Node::Script_Som_ResolveNodeList(FXJSE_HVALUE hValue, |
CXFA_ArrayNodeList* pNodeList = new CXFA_ArrayNodeList(m_pDocument); |
if (resoveNodeRS.dwFlags == XFA_RESOVENODE_RSTYPE_Nodes) { |
for (int32_t i = 0; i < resoveNodeRS.nodes.GetSize(); i++) { |
- if (resoveNodeRS.nodes[i]->IsNode()) { |
- pNodeList->Append((CXFA_Node*)resoveNodeRS.nodes[i]); |
- } |
+ if (resoveNodeRS.nodes[i]->IsNode()) |
+ pNodeList->Append(resoveNodeRS.nodes[i]->AsNode()); |
} |
} else { |
CXFA_HVALUEArray hValueArray(pScriptContext->GetRuntime()); |
@@ -705,9 +709,8 @@ void CXFA_Node::Script_Som_ResolveNodeList(FXJSE_HVALUE hValue, |
CXFA_ObjArray objectArray; |
hValueArray.GetAttributeObject(objectArray); |
for (int32_t i = 0; i < objectArray.GetSize(); i++) { |
- if (objectArray[i]->IsNode()) { |
- pNodeList->Append((CXFA_Node*)objectArray[i]); |
- } |
+ if (objectArray[i]->IsNode()) |
+ pNodeList->Append(objectArray[i]->AsNode()); |
} |
} |
} |
@@ -1160,7 +1163,7 @@ void CXFA_Node::Script_NodeClass_SetElement(CFXJSE_Arguments* pArguments) { |
CXFA_Node* pNode = NULL; |
CFX_WideString wsName; |
if (iLength >= 1) { |
- pNode = (CXFA_Node*)pArguments->GetObject(0); |
+ pNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); |
} |
if (iLength >= 2) { |
CFX_ByteString bsName = pArguments->GetUTF8String(1); |
@@ -1479,7 +1482,7 @@ void CXFA_Node::Script_Attribute_String(FXJSE_HVALUE hValue, |
this->GetClassID() == XFA_ELEMENT_Desc) { |
CFX_WideString wsUseVal = wsValue, wsID, wsSOM; |
CXFA_Node* pTemplateNode = |
- (CXFA_Node*)m_pDocument->GetXFAObject(XFA_HASHCODE_Template); |
+ ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Template)); |
CXFA_Node* pProtoRoot = |
pTemplateNode->GetFirstChildByClass(XFA_ELEMENT_Subform) |
->GetFirstChildByClass(XFA_ELEMENT_Proto); |
@@ -1502,7 +1505,7 @@ void CXFA_Node::Script_Attribute_String(FXJSE_HVALUE hValue, |
int32_t iRet = m_pDocument->GetScriptContext()->ResolveObjects( |
pProtoRoot, wsSOM, resoveNodeRS, dwFlag); |
if (iRet > 0 && resoveNodeRS.nodes[0]->IsNode()) { |
- pProtoNode = (CXFA_Node*)resoveNodeRS.nodes[0]; |
+ pProtoNode = resoveNodeRS.nodes[0]->AsNode(); |
} |
} else if (!wsID.IsEmpty()) { |
pProtoNode = m_pDocument->GetNodeByID(pProtoRoot, wsID); |
@@ -3108,7 +3111,7 @@ static CXFA_Node* XFA_ScriptInstanceManager_CreateInstance( |
} |
} |
if (!pDataScope) { |
- pDataScope = (CXFA_Node*)pDocument->GetXFAObject(XFA_HASHCODE_Record); |
+ pDataScope = ToNode(pDocument->GetXFAObject(XFA_HASHCODE_Record)); |
ASSERT(pDataScope); |
} |
CXFA_Node* pInstance = pDocument->DataMerge_CopyContainer( |
@@ -3188,7 +3191,7 @@ void CXFA_Node::Script_InstanceManager_RemoveInstance( |
return; |
} |
pLayoutPro->AddChangedContainer( |
- (CXFA_Node*)m_pDocument->GetXFAObject(XFA_HASHCODE_Form)); |
+ ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form))); |
} |
void CXFA_Node::Script_InstanceManager_SetInstances( |
CFXJSE_Arguments* pArguments) { |
@@ -3235,7 +3238,7 @@ void CXFA_Node::Script_InstanceManager_AddInstance( |
return; |
} |
pLayoutPro->AddChangedContainer( |
- (CXFA_Node*)m_pDocument->GetXFAObject(XFA_HASHCODE_Form)); |
+ ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form))); |
} |
void CXFA_Node::Script_InstanceManager_InsertInstance( |
CFXJSE_Arguments* pArguments) { |
@@ -3278,7 +3281,7 @@ void CXFA_Node::Script_InstanceManager_InsertInstance( |
return; |
} |
pLayoutPro->AddChangedContainer( |
- (CXFA_Node*)m_pDocument->GetXFAObject(XFA_HASHCODE_Form)); |
+ ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form))); |
} |
int32_t CXFA_Node::InstanceManager_SetInstances(int32_t iDesired) { |
CXFA_Occur nodeOccur(GetOccurNode()); |
@@ -3339,11 +3342,10 @@ int32_t CXFA_Node::InstanceManager_SetInstances(int32_t iDesired) { |
} |
} |
CXFA_LayoutProcessor* pLayoutPro = m_pDocument->GetLayoutProcessor(); |
- if (!pLayoutPro) { |
- return 0; |
+ if (pLayoutPro) { |
+ pLayoutPro->AddChangedContainer( |
+ ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form))); |
} |
- pLayoutPro->AddChangedContainer( |
- (CXFA_Node*)m_pDocument->GetXFAObject(XFA_HASHCODE_Form)); |
return 0; |
} |
int32_t CXFA_Node::InstanceManager_MoveInstance(int32_t iTo, int32_t iFrom) { |
@@ -3360,11 +3362,10 @@ int32_t CXFA_Node::InstanceManager_MoveInstance(int32_t iTo, int32_t iFrom) { |
XFA_ScriptInstanceManager_InsertItem(this, pMoveInstance, iTo, iCount - 1, |
TRUE); |
CXFA_LayoutProcessor* pLayoutPro = m_pDocument->GetLayoutProcessor(); |
- if (!pLayoutPro) { |
- return 0; |
+ if (pLayoutPro) { |
+ pLayoutPro->AddChangedContainer( |
+ ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form))); |
} |
- pLayoutPro->AddChangedContainer( |
- (CXFA_Node*)m_pDocument->GetXFAObject(XFA_HASHCODE_Form)); |
return 0; |
} |
void CXFA_Node::Script_Occur_Max(FXJSE_HVALUE hValue, |
@@ -3400,7 +3401,7 @@ void CXFA_Node::Script_Desc_Metadata(CFXJSE_Arguments* pArguments) { |
void CXFA_Node::Script_Form_FormNodes(CFXJSE_Arguments* pArguments) { |
int32_t argc = pArguments->GetLength(); |
if (argc == 1) { |
- CXFA_Node* pDataNode = (CXFA_Node*)pArguments->GetObject(0); |
+ CXFA_Node* pDataNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); |
if (pDataNode) { |
CXFA_NodeArray formItems; |
CXFA_ArrayNodeList* pFormNodes = new CXFA_ArrayNodeList(m_pDocument); |
@@ -4483,21 +4484,21 @@ CXFA_Node* CXFA_Node::GetModelNode() { |
case XFA_XDPPACKET_XDP: |
return m_pDocument->GetRoot(); |
case XFA_XDPPACKET_Config: |
- return (CXFA_Node*)m_pDocument->GetXFAObject(XFA_HASHCODE_Config); |
+ return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Config)); |
case XFA_XDPPACKET_Template: |
- return (CXFA_Node*)m_pDocument->GetXFAObject(XFA_HASHCODE_Template); |
+ return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Template)); |
case XFA_XDPPACKET_Form: |
- return (CXFA_Node*)m_pDocument->GetXFAObject(XFA_HASHCODE_Form); |
+ return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form)); |
case XFA_XDPPACKET_Datasets: |
- return (CXFA_Node*)m_pDocument->GetXFAObject(XFA_HASHCODE_Datasets); |
+ return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Datasets)); |
case XFA_XDPPACKET_LocaleSet: |
- return (CXFA_Node*)m_pDocument->GetXFAObject(XFA_HASHCODE_LocaleSet); |
+ return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_LocaleSet)); |
case XFA_XDPPACKET_ConnectionSet: |
- return (CXFA_Node*)m_pDocument->GetXFAObject(XFA_HASHCODE_ConnectionSet); |
+ return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_ConnectionSet)); |
case XFA_XDPPACKET_SourceSet: |
- return (CXFA_Node*)m_pDocument->GetXFAObject(XFA_HASHCODE_SourceSet); |
+ return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_SourceSet)); |
case XFA_XDPPACKET_Xdc: |
- return (CXFA_Node*)m_pDocument->GetXFAObject(XFA_HASHCODE_Xdc); |
+ return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Xdc)); |
default: |
return this; |
} |
@@ -4821,14 +4822,14 @@ int32_t CXFA_Node::GetNodeSameNameIndex() const { |
if (!pScriptContext) { |
return -1; |
} |
- return pScriptContext->GetIndexByName((CXFA_Node*)this); |
+ return pScriptContext->GetIndexByName(const_cast<CXFA_Node*>(this)); |
} |
int32_t CXFA_Node::GetNodeSameClassIndex() const { |
IXFA_ScriptContext* pScriptContext = m_pDocument->GetScriptContext(); |
if (!pScriptContext) { |
return -1; |
} |
- return pScriptContext->GetIndexByClassName((CXFA_Node*)this); |
+ return pScriptContext->GetIndexByClassName(const_cast<CXFA_Node*>(this)); |
} |
void CXFA_Node::GetSOMExpression(CFX_WideString& wsSOMExpression) { |
IXFA_ScriptContext* pScriptContext = m_pDocument->GetScriptContext(); |
@@ -5163,7 +5164,7 @@ void CXFA_Node::RemoveMapModuleKey(void* pKey) { |
} |
void CXFA_Node::MergeAllData(void* pDstModule, FX_BOOL bUseSrcAttr) { |
XFA_LPMAPMODULEDATA pDstModuleData = |
- ((CXFA_Node*)pDstModule)->GetMapModuleData(TRUE); |
+ static_cast<CXFA_Node*>(pDstModule)->GetMapModuleData(TRUE); |
if (!pDstModuleData) { |
return; |
} |
@@ -5299,7 +5300,7 @@ CXFA_Node* CXFA_NodeList::NamedItem(const CFX_WideStringC& wsName) { |
void CXFA_NodeList::Script_ListClass_Append(CFXJSE_Arguments* pArguments) { |
int32_t argc = pArguments->GetLength(); |
if (argc == 1) { |
- CXFA_Node* pNode = (CXFA_Node*)pArguments->GetObject(0); |
+ CXFA_Node* pNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); |
if (pNode) { |
Append(pNode); |
} else { |
@@ -5312,8 +5313,8 @@ void CXFA_NodeList::Script_ListClass_Append(CFXJSE_Arguments* pArguments) { |
void CXFA_NodeList::Script_ListClass_Insert(CFXJSE_Arguments* pArguments) { |
int32_t argc = pArguments->GetLength(); |
if (argc == 2) { |
- CXFA_Node* pNewNode = (CXFA_Node*)pArguments->GetObject(0); |
- CXFA_Node* pBeforeNode = (CXFA_Node*)pArguments->GetObject(1); |
+ CXFA_Node* pNewNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); |
+ CXFA_Node* pBeforeNode = static_cast<CXFA_Node*>(pArguments->GetObject(1)); |
if (pNewNode) { |
Insert(pNewNode, pBeforeNode); |
} else { |
@@ -5326,7 +5327,7 @@ void CXFA_NodeList::Script_ListClass_Insert(CFXJSE_Arguments* pArguments) { |
void CXFA_NodeList::Script_ListClass_Remove(CFXJSE_Arguments* pArguments) { |
int32_t argc = pArguments->GetLength(); |
if (argc == 1) { |
- CXFA_Node* pNode = (CXFA_Node*)pArguments->GetObject(0); |
+ CXFA_Node* pNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); |
if (pNode) { |
Remove(pNode); |
} else { |