diff options
Diffstat (limited to 'xfa/src/fxfa/src/parser/xfa_object_imp.cpp')
-rw-r--r-- | xfa/src/fxfa/src/parser/xfa_object_imp.cpp | 105 |
1 files changed, 53 insertions, 52 deletions
diff --git a/xfa/src/fxfa/src/parser/xfa_object_imp.cpp b/xfa/src/fxfa/src/parser/xfa_object_imp.cpp index 1829ffdb67..10d5e24abf 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 { |