From 8ee5207f4f792295badd21f90727e8c810e7dbdf Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Thu, 4 Jan 2018 10:26:49 -0500 Subject: Make CXFA_WidgetData constructor protected This CL removes all the direct creation of CXFA_WidgetData elements and makes the constructor protected. Change-Id: I2e9aa11cab8c1e26f7cfa9fd32329f0841fab010 Reviewed-on: https://pdfium-review.googlesource.com/22251 Reviewed-by: Ryan Harrison Commit-Queue: dsinclair --- xfa/fxfa/parser/cxfa_node.cpp | 9 +++++++++ xfa/fxfa/parser/cxfa_node.h | 1 + xfa/fxfa/parser/cxfa_widgetdata.cpp | 10 +--------- xfa/fxfa/parser/cxfa_widgetdata.h | 3 ++- 4 files changed, 13 insertions(+), 10 deletions(-) (limited to 'xfa/fxfa/parser') diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp index ac1398822d..9a1dec6716 100644 --- a/xfa/fxfa/parser/cxfa_node.cpp +++ b/xfa/fxfa/parser/cxfa_node.cpp @@ -621,6 +621,15 @@ CXFA_WidgetData* CXFA_Node::GetContainerWidgetData() { : nullptr; } +IFX_Locale* CXFA_Node::GetLocale() { + WideString wsLocaleName; + if (!GetLocaleName(wsLocaleName)) + return nullptr; + if (wsLocaleName == L"ambient") + return GetDocument()->GetLocalMgr()->GetDefLocale(); + return GetDocument()->GetLocalMgr()->GetLocaleByName(wsLocaleName); +} + bool CXFA_Node::GetLocaleName(WideString& wsLocaleName) { CXFA_Node* pForm = GetDocument()->GetXFAObject(XFA_HASHCODE_Form)->AsNode(); CXFA_Subform* pTopSubform = diff --git a/xfa/fxfa/parser/cxfa_node.h b/xfa/fxfa/parser/cxfa_node.h index b41a27ef01..194f870d76 100644 --- a/xfa/fxfa/parser/cxfa_node.h +++ b/xfa/fxfa/parser/cxfa_node.h @@ -183,6 +183,7 @@ class CXFA_Node : public CXFA_Object { bool HasBindItem(); CXFA_WidgetData* GetWidgetData(); CXFA_WidgetData* GetContainerWidgetData(); + IFX_Locale* GetLocale(); bool GetLocaleName(WideString& wsLocaleName); XFA_AttributeEnum GetIntact(); diff --git a/xfa/fxfa/parser/cxfa_widgetdata.cpp b/xfa/fxfa/parser/cxfa_widgetdata.cpp index 7771d33d01..68063e2a07 100644 --- a/xfa/fxfa/parser/cxfa_widgetdata.cpp +++ b/xfa/fxfa/parser/cxfa_widgetdata.cpp @@ -1500,15 +1500,7 @@ WideString CXFA_WidgetData::GetPictureContent(XFA_VALUEPICTURE ePicture) { } IFX_Locale* CXFA_WidgetData::GetLocale() { - if (!m_pNode) - return nullptr; - - WideString wsLocaleName; - if (!m_pNode->GetLocaleName(wsLocaleName)) - return nullptr; - if (wsLocaleName == L"ambient") - return m_pNode->GetDocument()->GetLocalMgr()->GetDefLocale(); - return m_pNode->GetDocument()->GetLocalMgr()->GetLocaleByName(wsLocaleName); + return m_pNode ? m_pNode->GetLocale() : nullptr; } WideString CXFA_WidgetData::GetValue(XFA_VALUEPICTURE eValueType) { diff --git a/xfa/fxfa/parser/cxfa_widgetdata.h b/xfa/fxfa/parser/cxfa_widgetdata.h index 941eead3fd..4b11521b6f 100644 --- a/xfa/fxfa/parser/cxfa_widgetdata.h +++ b/xfa/fxfa/parser/cxfa_widgetdata.h @@ -44,7 +44,6 @@ class IFX_Locale; class CXFA_WidgetData { public: - explicit CXFA_WidgetData(CXFA_Node* pNode); virtual ~CXFA_WidgetData(); CXFA_Node* GetNode() const { return m_pNode; } @@ -178,6 +177,8 @@ class CXFA_WidgetData { void SetIsNull(bool val) { m_bIsNull = val; } protected: + explicit CXFA_WidgetData(CXFA_Node* pNode); + CXFA_Node* m_pNode; private: -- cgit v1.2.3