diff options
author | Ryan Harrison <rharrison@chromium.org> | 2017-12-13 21:57:12 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-12-13 21:57:12 +0000 |
commit | 604f5b9e042267cffd8949f309a86c370a3d01d4 (patch) | |
tree | 4d671f259e0c423ae012dc831c7165c4a32e89a5 | |
parent | 2614250d4f11ed02033a7da095a1694ece12ab78 (diff) | |
download | pdfium-604f5b9e042267cffd8949f309a86c370a3d01d4.tar.xz |
Refactor CFXA_*List constructorschromium/3294
This removes the double adding to the cache list in the engine that is
occuring for TreeList. It also sets the correct TreeList specific
values at the Object level.
BUG=pdfium:665
Change-Id: Ie972daee4c638f34ad207f6502dc6d34cbebf1b6
Reviewed-on: https://pdfium-review.googlesource.com/21171
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
-rw-r--r-- | xfa/fxfa/parser/cxfa_list.cpp | 17 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_list.h | 5 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_treelist.cpp | 9 |
3 files changed, 22 insertions, 9 deletions
diff --git a/xfa/fxfa/parser/cxfa_list.cpp b/xfa/fxfa/parser/cxfa_list.cpp index 3d56cac140..6f5fc29ca5 100644 --- a/xfa/fxfa/parser/cxfa_list.cpp +++ b/xfa/fxfa/parser/cxfa_list.cpp @@ -15,11 +15,18 @@ #include "xfa/fxfa/parser/cxfa_node.h" CXFA_List::CXFA_List(CXFA_Document* pDocument, std::unique_ptr<CJX_Object> obj) - : CXFA_Object(pDocument, - XFA_ObjectType::List, - XFA_Element::List, - WideStringView(L"list"), - std::move(obj)) { + : CXFA_List(pDocument, + XFA_ObjectType::List, + XFA_Element::List, + WideStringView(L"list"), + std::move(obj)) {} + +CXFA_List::CXFA_List(CXFA_Document* pDocument, + XFA_ObjectType objectType, + XFA_Element eType, + const WideStringView& elementName, + std::unique_ptr<CJX_Object> obj) + : CXFA_Object(pDocument, objectType, eType, elementName, std::move(obj)) { m_pDocument->GetScriptContext()->AddToCacheList( std::unique_ptr<CXFA_List>(this)); } diff --git a/xfa/fxfa/parser/cxfa_list.h b/xfa/fxfa/parser/cxfa_list.h index 2141a8fb10..5736747dba 100644 --- a/xfa/fxfa/parser/cxfa_list.h +++ b/xfa/fxfa/parser/cxfa_list.h @@ -25,6 +25,11 @@ class CXFA_List : public CXFA_Object { protected: CXFA_List(CXFA_Document* doc, std::unique_ptr<CJX_Object> js_obj); + CXFA_List(CXFA_Document* pDocument, + XFA_ObjectType objectType, + XFA_Element eType, + const WideStringView& elementName, + std::unique_ptr<CJX_Object> obj); }; #endif // XFA_FXFA_PARSER_CXFA_LIST_H_ diff --git a/xfa/fxfa/parser/cxfa_treelist.cpp b/xfa/fxfa/parser/cxfa_treelist.cpp index 520818c94a..754c80d661 100644 --- a/xfa/fxfa/parser/cxfa_treelist.cpp +++ b/xfa/fxfa/parser/cxfa_treelist.cpp @@ -16,10 +16,11 @@ #include "xfa/fxfa/parser/cxfa_node.h" CXFA_TreeList::CXFA_TreeList(CXFA_Document* pDocument) - : CXFA_List(pDocument, pdfium::MakeUnique<CJX_TreeList>(this)) { - m_pDocument->GetScriptContext()->AddToCacheList( - std::unique_ptr<CXFA_TreeList>(this)); -} + : CXFA_List(pDocument, + XFA_ObjectType::TreeList, + XFA_Element::TreeList, + WideStringView(L"treeList"), + pdfium::MakeUnique<CJX_TreeList>(this)) {} CXFA_TreeList::~CXFA_TreeList() {} |