summaryrefslogtreecommitdiff
path: root/xfa/fxfa/parser
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fxfa/parser')
-rw-r--r--xfa/fxfa/parser/cxfa_nodehelper.cpp26
-rw-r--r--xfa/fxfa/parser/cxfa_nodehelper.h8
2 files changed, 15 insertions, 19 deletions
diff --git a/xfa/fxfa/parser/cxfa_nodehelper.cpp b/xfa/fxfa/parser/cxfa_nodehelper.cpp
index 2c3c46dbb5..98e4bdce42 100644
--- a/xfa/fxfa/parser/cxfa_nodehelper.cpp
+++ b/xfa/fxfa/parser/cxfa_nodehelper.cpp
@@ -230,24 +230,23 @@ int32_t CXFA_NodeHelper::GetIndex(CXFA_Node* pNode,
return 0;
}
-void CXFA_NodeHelper::GetNameExpression(CXFA_Node* refNode,
- WideString& wsName,
- bool bIsAllPath,
- XFA_LOGIC_TYPE eLogicType) {
- wsName.clear();
+WideString CXFA_NodeHelper::GetNameExpression(CXFA_Node* refNode,
+ bool bIsAllPath,
+ XFA_LOGIC_TYPE eLogicType) {
+ WideString wsName;
if (bIsAllPath) {
- GetNameExpression(refNode, wsName, false, eLogicType);
+ wsName = GetNameExpression(refNode, false, eLogicType);
WideString wsParent;
CXFA_Node* parent =
ResolveNodes_GetParent(refNode, XFA_LOGIC_NoTransparent);
while (parent) {
- GetNameExpression(parent, wsParent, false, eLogicType);
+ wsParent = GetNameExpression(parent, false, eLogicType);
wsParent += L".";
wsParent += wsName;
wsName = wsParent;
parent = ResolveNodes_GetParent(parent, XFA_LOGIC_NoTransparent);
}
- return;
+ return wsName;
}
WideString ws;
@@ -255,16 +254,13 @@ void CXFA_NodeHelper::GetNameExpression(CXFA_Node* refNode,
if (refNode->IsUnnamed() ||
(bIsProperty && refNode->GetElementType() != XFA_Element::PageSet)) {
ws = refNode->GetClassName();
- wsName =
- WideString::Format(L"#%ls[%d]", ws.c_str(),
- GetIndex(refNode, eLogicType, bIsProperty, true));
- return;
+ return WideString::Format(L"#%ls[%d]", ws.c_str(),
+ GetIndex(refNode, eLogicType, bIsProperty, true));
}
ws = refNode->JSObject()->GetCData(XFA_Attribute::Name);
ws.Replace(L".", L"\\.");
- wsName =
- WideString::Format(L"%ls[%d]", ws.c_str(),
- GetIndex(refNode, eLogicType, bIsProperty, false));
+ return WideString::Format(L"%ls[%d]", ws.c_str(),
+ GetIndex(refNode, eLogicType, bIsProperty, false));
}
bool CXFA_NodeHelper::NodeIsTransparent(CXFA_Node* refNode) {
diff --git a/xfa/fxfa/parser/cxfa_nodehelper.h b/xfa/fxfa/parser/cxfa_nodehelper.h
index 394259e53d..e13387ec9e 100644
--- a/xfa/fxfa/parser/cxfa_nodehelper.h
+++ b/xfa/fxfa/parser/cxfa_nodehelper.h
@@ -48,10 +48,10 @@ class CXFA_NodeHelper {
XFA_LOGIC_TYPE eLogicType = XFA_LOGIC_NoTransparent,
bool bIsProperty = false,
bool bIsClassIndex = false);
- void GetNameExpression(CXFA_Node* refNode,
- WideString& wsName,
- bool bIsAllPath,
- XFA_LOGIC_TYPE eLogicType = XFA_LOGIC_NoTransparent);
+ WideString GetNameExpression(
+ CXFA_Node* refNode,
+ bool bIsAllPath,
+ XFA_LOGIC_TYPE eLogicType = XFA_LOGIC_NoTransparent);
bool NodeIsTransparent(CXFA_Node* refNode);
bool ResolveNodes_CreateNode(WideString wsName,
WideString wsCondition,