summaryrefslogtreecommitdiff
path: root/xfa/fxfa/parser
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fxfa/parser')
-rw-r--r--xfa/fxfa/parser/cxfa_document.cpp9
-rw-r--r--xfa/fxfa/parser/cxfa_document.h4
-rw-r--r--xfa/fxfa/parser/xfa_resolvenode_rs.h18
3 files changed, 15 insertions, 16 deletions
diff --git a/xfa/fxfa/parser/cxfa_document.cpp b/xfa/fxfa/parser/cxfa_document.cpp
index d42bfb5601..72bba2aeb0 100644
--- a/xfa/fxfa/parser/cxfa_document.cpp
+++ b/xfa/fxfa/parser/cxfa_document.cpp
@@ -360,7 +360,8 @@ CXFA_Node* FindDataRefDataNode(CXFA_Document* pDocument,
}
if (rs.dwFlags == XFA_ResolveNode_RSType_CreateNodeOne) {
- CXFA_Object* pObject = !rs.objects.empty() ? rs.objects.front() : nullptr;
+ CXFA_Object* pObject =
+ !rs.objects.empty() ? rs.objects.front().Get() : nullptr;
CXFA_Node* pNode = ToNode(pObject);
return (bForceBind || !pNode || !pNode->HasBindItem()) ? pNode : nullptr;
}
@@ -1200,7 +1201,7 @@ void UpdateBindingRelations(CXFA_Document* pDocument,
pDocument->GetScriptContext()->ResolveObjects(
pDataScope, wsRef.AsStringView(), &rs, dFlags, pTemplateNode);
CXFA_Object* pObject =
- !rs.objects.empty() ? rs.objects.front() : nullptr;
+ !rs.objects.empty() ? rs.objects.front().Get() : nullptr;
pDataNode = ToNode(pObject);
if (pDataNode) {
CreateDataBinding(pFormNode, pDataNode,
@@ -1618,8 +1619,8 @@ void CXFA_Document::DataMerge_UpdateBindingRelations(
}
CXFA_Node* CXFA_Document::GetNotBindNode(
- const std::vector<CXFA_Object*>& arrayObjects) const {
- for (CXFA_Object* pObject : arrayObjects) {
+ const std::vector<UnownedPtr<CXFA_Object>>& arrayObjects) const {
+ for (auto& pObject : arrayObjects) {
CXFA_Node* pNode = pObject->AsNode();
if (pNode && !pNode->HasBindItem())
return pNode;
diff --git a/xfa/fxfa/parser/cxfa_document.h b/xfa/fxfa/parser/cxfa_document.h
index 5260b1873f..590a4cf12a 100644
--- a/xfa/fxfa/parser/cxfa_document.h
+++ b/xfa/fxfa/parser/cxfa_document.h
@@ -11,6 +11,7 @@
#include <memory>
#include <vector>
+#include "core/fxcrt/unowned_ptr.h"
#include "xfa/fxfa/fxfa.h"
#include "xfa/fxfa/parser/cxfa_localemgr.h"
#include "xfa/fxfa/parser/cxfa_nodeowner.h"
@@ -65,7 +66,8 @@ class CXFA_Document : public CXFA_NodeOwner {
CXFA_LocaleMgr* GetLocaleMgr();
CXFA_Object* GetXFAObject(XFA_HashCode wsNodeNameHash);
CXFA_Node* GetNodeByID(CXFA_Node* pRoot, const WideStringView& wsID) const;
- CXFA_Node* GetNotBindNode(const std::vector<CXFA_Object*>& arrayNodes) const;
+ CXFA_Node* GetNotBindNode(
+ const std::vector<UnownedPtr<CXFA_Object>>& arrayNodes) const;
CXFA_LayoutProcessor* GetLayoutProcessor();
CFXJSE_Engine* GetScriptContext() const;
diff --git a/xfa/fxfa/parser/xfa_resolvenode_rs.h b/xfa/fxfa/parser/xfa_resolvenode_rs.h
index 86960abecc..7039c61ee9 100644
--- a/xfa/fxfa/parser/xfa_resolvenode_rs.h
+++ b/xfa/fxfa/parser/xfa_resolvenode_rs.h
@@ -7,13 +7,10 @@
#ifndef XFA_FXFA_PARSER_XFA_RESOLVENODE_RS_H_
#define XFA_FXFA_PARSER_XFA_RESOLVENODE_RS_H_
-#include <memory>
-#include <utility>
#include <vector>
-#include "fxjs/cfxjse_value.h"
-#include "third_party/base/ptr_util.h"
-#include "xfa/fxfa/fxfa.h"
+#include "core/fxcrt/unowned_ptr.h"
+#include "fxjs/xfa/cjx_object.h"
#include "xfa/fxfa/parser/cxfa_object.h"
#define XFA_RESOLVENODE_Children 0x0001
@@ -40,14 +37,13 @@ struct XFA_RESOLVENODE_RS {
XFA_RESOLVENODE_RS();
~XFA_RESOLVENODE_RS();
- std::vector<CXFA_Object*> objects; // Not owned.
- XFA_ResolveNode_RSType dwFlags;
- const XFA_SCRIPTATTRIBUTEINFO* pScriptAttribute;
+ XFA_ResolveNode_RSType dwFlags = XFA_ResolveNode_RSType_Nodes;
+ std::vector<UnownedPtr<CXFA_Object>> objects;
+ UnownedPtr<const XFA_SCRIPTATTRIBUTEINFO> pScriptAttribute;
};
-inline XFA_RESOLVENODE_RS::XFA_RESOLVENODE_RS()
- : dwFlags(XFA_ResolveNode_RSType_Nodes), pScriptAttribute(nullptr) {}
+inline XFA_RESOLVENODE_RS::XFA_RESOLVENODE_RS() = default;
-inline XFA_RESOLVENODE_RS::~XFA_RESOLVENODE_RS() {}
+inline XFA_RESOLVENODE_RS::~XFA_RESOLVENODE_RS() = default;
#endif // XFA_FXFA_PARSER_XFA_RESOLVENODE_RS_H_