summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2018-07-03 21:19:36 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-07-03 21:19:36 +0000
commit94f7b75b4d5d1988e599ed4a9a7b6cf451994f1d (patch)
tree07ca359834ff9be154b84bad91408bd327f241ac
parent57e594f047f86bfa4d26864e993ce330ad66bfcd (diff)
downloadpdfium-94f7b75b4d5d1988e599ed4a9a7b6cf451994f1d.tar.xz
Use unowned ptr to Node from outside XFA node tree.chromium/3481
Change-Id: Idcd992224fc5411c97f3001293af83a6c581e695 Reviewed-on: https://pdfium-review.googlesource.com/36991 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
-rw-r--r--fxjs/cfxjse_engine.cpp4
-rw-r--r--xfa/fxfa/parser/cxfa_nodehelper.cpp10
-rw-r--r--xfa/fxfa/parser/cxfa_nodehelper.h12
-rw-r--r--xfa/fxfa/parser/cxfa_thisproxy.h12
4 files changed, 16 insertions, 22 deletions
diff --git a/fxjs/cfxjse_engine.cpp b/fxjs/cfxjse_engine.cpp
index 78b152b9dd..9b54555a21 100644
--- a/fxjs/cfxjse_engine.cpp
+++ b/fxjs/cfxjse_engine.cpp
@@ -624,7 +624,7 @@ bool CFXJSE_Engine::ResolveObjects(CXFA_Object* refObject,
dwStyles |= XFA_RESOLVENODE_Bind;
findObjects.clear();
findObjects.push_back(
- m_ResolveProcessor->GetNodeHelper()->m_pAllStartParent);
+ m_ResolveProcessor->GetNodeHelper()->m_pAllStartParent.Get());
continue;
}
break;
@@ -724,7 +724,7 @@ bool CFXJSE_Engine::ResolveObjects(CXFA_Object* refObject,
XFA_RESOLVENODE_BindNew)) {
CXFA_NodeHelper* helper = m_ResolveProcessor->GetNodeHelper();
if (helper->m_pCreateParent)
- resolveNodeRS->objects.push_back(helper->m_pCreateParent);
+ resolveNodeRS->objects.push_back(helper->m_pCreateParent.Get());
else
helper->CreateNode_ForCondition(rndFind.m_wsCondition);
diff --git a/xfa/fxfa/parser/cxfa_nodehelper.cpp b/xfa/fxfa/parser/cxfa_nodehelper.cpp
index 7eddddf37b..e4fb8660f9 100644
--- a/xfa/fxfa/parser/cxfa_nodehelper.cpp
+++ b/xfa/fxfa/parser/cxfa_nodehelper.cpp
@@ -17,15 +17,9 @@
#include "xfa/fxfa/parser/xfa_resolvenode_rs.h"
#include "xfa/fxfa/parser/xfa_utils.h"
-CXFA_NodeHelper::CXFA_NodeHelper()
- : m_eLastCreateType(XFA_Element::DataValue),
- m_pCreateParent(nullptr),
- m_iCreateCount(0),
- m_iCreateFlag(XFA_ResolveNode_RSType_CreateNodeOne),
- m_iCurAllStart(-1),
- m_pAllStartParent(nullptr) {}
+CXFA_NodeHelper::CXFA_NodeHelper() = default;
-CXFA_NodeHelper::~CXFA_NodeHelper() {}
+CXFA_NodeHelper::~CXFA_NodeHelper() = default;
CXFA_Node* CXFA_NodeHelper::ResolveNodes_GetOneChild(CXFA_Node* parent,
const wchar_t* pwsName,
diff --git a/xfa/fxfa/parser/cxfa_nodehelper.h b/xfa/fxfa/parser/cxfa_nodehelper.h
index e13387ec9e..b53e1f4063 100644
--- a/xfa/fxfa/parser/cxfa_nodehelper.h
+++ b/xfa/fxfa/parser/cxfa_nodehelper.h
@@ -61,12 +61,12 @@ class CXFA_NodeHelper {
void SetCreateNodeType(CXFA_Node* refNode);
bool NodeIsProperty(CXFA_Node* refNode);
- XFA_Element m_eLastCreateType;
- CXFA_Node* m_pCreateParent;
- int32_t m_iCreateCount;
- XFA_ResolveNode_RSType m_iCreateFlag;
- int32_t m_iCurAllStart;
- CXFA_Node* m_pAllStartParent;
+ XFA_Element m_eLastCreateType = XFA_Element::DataValue;
+ XFA_ResolveNode_RSType m_iCreateFlag = XFA_ResolveNode_RSType_CreateNodeOne;
+ int32_t m_iCreateCount = 0;
+ int32_t m_iCurAllStart = -1;
+ UnownedPtr<CXFA_Node> m_pCreateParent;
+ UnownedPtr<CXFA_Node> m_pAllStartParent;
};
#endif // XFA_FXFA_PARSER_CXFA_NODEHELPER_H_
diff --git a/xfa/fxfa/parser/cxfa_thisproxy.h b/xfa/fxfa/parser/cxfa_thisproxy.h
index 4bb0f5a1b5..197a97da67 100644
--- a/xfa/fxfa/parser/cxfa_thisproxy.h
+++ b/xfa/fxfa/parser/cxfa_thisproxy.h
@@ -7,21 +7,21 @@
#ifndef XFA_FXFA_PARSER_CXFA_THISPROXY_H_
#define XFA_FXFA_PARSER_CXFA_THISPROXY_H_
+#include "core/fxcrt/unowned_ptr.h"
+#include "xfa/fxfa/parser/cxfa_node.h"
#include "xfa/fxfa/parser/cxfa_object.h"
-class CXFA_Node;
-
class CXFA_ThisProxy : public CXFA_Object {
public:
CXFA_ThisProxy(CXFA_Node* pThisNode, CXFA_Node* pScriptNode);
~CXFA_ThisProxy() override;
- CXFA_Node* GetThisNode() const { return m_pThisNode; }
- CXFA_Node* GetScriptNode() const { return m_pScriptNode; }
+ CXFA_Node* GetThisNode() const { return m_pThisNode.Get(); }
+ CXFA_Node* GetScriptNode() const { return m_pScriptNode.Get(); }
private:
- CXFA_Node* m_pThisNode;
- CXFA_Node* m_pScriptNode;
+ UnownedPtr<CXFA_Node> m_pThisNode;
+ UnownedPtr<CXFA_Node> m_pScriptNode;
};
#endif // XFA_FXFA_PARSER_CXFA_THISPROXY_H_