diff options
author | Tom Sepez <tsepez@chromium.org> | 2018-07-03 21:19:36 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-07-03 21:19:36 +0000 |
commit | 94f7b75b4d5d1988e599ed4a9a7b6cf451994f1d (patch) | |
tree | 07ca359834ff9be154b84bad91408bd327f241ac | |
parent | 57e594f047f86bfa4d26864e993ce330ad66bfcd (diff) | |
download | pdfium-chromium/3481.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.cpp | 4 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_nodehelper.cpp | 10 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_nodehelper.h | 12 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_thisproxy.h | 12 |
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_ |