diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2017-12-14 20:43:53 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-12-14 20:43:53 +0000 |
commit | 51ef4a6ca3b4ae9b618cb1c96f84697a2bf4a2b1 (patch) | |
tree | a365a0c3f25fff2f6511fbc23fd0e4d6b8d4eada /xfa/fxfa/parser/cxfa_node.h | |
parent | 8489e901fb16fe508e23a36cd3eff93d8332c2a2 (diff) | |
download | pdfium-51ef4a6ca3b4ae9b618cb1c96f84697a2bf4a2b1.tar.xz |
Change CXFA_Node::GetChild to return proper types
Currently CXFA_Node::GetChild always returns a CXFA_Node* object. We
know the type we want when we call GetChild, so this CL changes the code
to add a template parameter to GetChild and return the correct CXFA_Node
subtype for the desired element.
Change-Id: I5aecf2e840504235dc246483abee48e0564841fe
Reviewed-on: https://pdfium-review.googlesource.com/21210
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'xfa/fxfa/parser/cxfa_node.h')
-rw-r--r-- | xfa/fxfa/parser/cxfa_node.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/xfa/fxfa/parser/cxfa_node.h b/xfa/fxfa/parser/cxfa_node.h index 2b0b476d36..c2c7605e85 100644 --- a/xfa/fxfa/parser/cxfa_node.h +++ b/xfa/fxfa/parser/cxfa_node.h @@ -153,7 +153,12 @@ class CXFA_Node : public CXFA_Object { void UpdateNameHash(); int32_t CountChildren(XFA_Element eType, bool bOnlyChild); - CXFA_Node* GetChild(int32_t index, XFA_Element eType, bool bOnlyChild); + + template <typename T> + T* GetChild(int32_t index, XFA_Element eType, bool bOnlyChild) { + return static_cast<T*>(GetChildInternal(index, eType, bOnlyChild)); + } + int32_t InsertChild(int32_t index, CXFA_Node* pNode); bool InsertChild(CXFA_Node* pNode, CXFA_Node* pBeforeNode); bool RemoveChild(CXFA_Node* pNode, bool bNotify); @@ -225,6 +230,9 @@ class CXFA_Node : public CXFA_Object { void OnRemoved(bool bNotify); pdfium::Optional<void*> GetDefaultValue(XFA_Attribute attr, XFA_AttributeType eType) const; + CXFA_Node* GetChildInternal(int32_t index, + XFA_Element eType, + bool bOnlyChild); const PropertyData* const m_Properties; const AttributeData* const m_Attributes; |