summaryrefslogtreecommitdiff
path: root/fxjs/xfa/cjx_packet.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'fxjs/xfa/cjx_packet.cpp')
-rw-r--r--fxjs/xfa/cjx_packet.cpp50
1 files changed, 23 insertions, 27 deletions
diff --git a/fxjs/xfa/cjx_packet.cpp b/fxjs/xfa/cjx_packet.cpp
index b27cfbadfb..2288de4c8d 100644
--- a/fxjs/xfa/cjx_packet.cpp
+++ b/fxjs/xfa/cjx_packet.cpp
@@ -35,11 +35,10 @@ CJS_Return CJX_Packet::getAttribute(
return CJS_Return(JSGetStringFromID(JSMessage::kParamError));
WideString attributeValue;
- CFX_XMLNode* pXMLNode = GetXFANode()->GetXMLMappingNode();
- if (pXMLNode && pXMLNode->GetType() == FX_XMLNODE_Element) {
- attributeValue = static_cast<CFX_XMLElement*>(pXMLNode)->GetAttribute(
- runtime->ToWideString(params[0]));
- }
+ CFX_XMLElement* element = ToXMLElement(GetXFANode()->GetXMLMappingNode());
+ if (element)
+ attributeValue = element->GetAttribute(runtime->ToWideString(params[0]));
+
return CJS_Return(
runtime->NewString(attributeValue.UTF8Encode().AsStringView()));
}
@@ -50,10 +49,10 @@ CJS_Return CJX_Packet::setAttribute(
if (params.size() != 2)
return CJS_Return(JSGetStringFromID(JSMessage::kParamError));
- CFX_XMLNode* pXMLNode = GetXFANode()->GetXMLMappingNode();
- if (pXMLNode && pXMLNode->GetType() == FX_XMLNODE_Element) {
- static_cast<CFX_XMLElement*>(pXMLNode)->SetAttribute(
- runtime->ToWideString(params[1]), runtime->ToWideString(params[0]));
+ CFX_XMLElement* element = ToXMLElement(GetXFANode()->GetXMLMappingNode());
+ if (element) {
+ element->SetAttribute(runtime->ToWideString(params[1]),
+ runtime->ToWideString(params[0]));
}
return CJS_Return(runtime->NewNull());
}
@@ -64,12 +63,11 @@ CJS_Return CJX_Packet::removeAttribute(
if (params.size() != 1)
return CJS_Return(JSGetStringFromID(JSMessage::kParamError));
- CFX_XMLNode* pXMLNode = GetXFANode()->GetXMLMappingNode();
- if (pXMLNode && pXMLNode->GetType() == FX_XMLNODE_Element) {
+ CFX_XMLElement* pElement = ToXMLElement(GetXFANode()->GetXMLMappingNode());
+ if (pElement) {
WideString name = runtime->ToWideString(params[0]);
- CFX_XMLElement* pXMLElement = static_cast<CFX_XMLElement*>(pXMLNode);
- if (pXMLElement->HasAttribute(name))
- pXMLElement->RemoveAttribute(name);
+ if (pElement->HasAttribute(name))
+ pElement->RemoveAttribute(name);
}
return CJS_Return(runtime->NewNull());
}
@@ -77,25 +75,23 @@ CJS_Return CJX_Packet::removeAttribute(
void CJX_Packet::content(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
- CFX_XMLNode* pXMLNode = GetXFANode()->GetXMLMappingNode();
+ CFX_XMLElement* element = ToXMLElement(GetXFANode()->GetXMLMappingNode());
if (bSetting) {
- if (pXMLNode && pXMLNode->GetType() == FX_XMLNODE_Element) {
- auto* text = GetXFANode()
- ->GetDocument()
- ->GetNotify()
- ->GetHDOC()
- ->GetXMLDocument()
- ->CreateNode<CFX_XMLText>(pValue->ToWideString());
- pXMLNode->AppendChild(text);
+ if (element) {
+ element->AppendChild(
+ GetXFANode()
+ ->GetDocument()
+ ->GetNotify()
+ ->GetHDOC()
+ ->GetXMLDocument()
+ ->CreateNode<CFX_XMLText>(pValue->ToWideString()));
}
return;
}
WideString wsTextData;
- if (pXMLNode && pXMLNode->GetType() == FX_XMLNODE_Element) {
- CFX_XMLElement* pXMLElement = static_cast<CFX_XMLElement*>(pXMLNode);
- wsTextData = pXMLElement->GetTextData();
- }
+ if (element)
+ wsTextData = element->GetTextData();
pValue->SetString(wsTextData.UTF8Encode().AsStringView());
}