diff options
author | Lei Zhang <thestig@chromium.org> | 2018-10-15 18:51:11 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-10-15 18:51:11 +0000 |
commit | e4f2f4a3f4fd3e9f372912f4151d7c7843f9556f (patch) | |
tree | d88a221b657d7e09bd0fd7460644fd5c048515fb /core/fpdfdoc/cpdf_formcontrol.cpp | |
parent | 98ac76ec09ce72526134ad75f1921a1691804dd1 (diff) | |
download | pdfium-e4f2f4a3f4fd3e9f372912f4151d7c7843f9556f.tar.xz |
Use more UnownedPtr in CPDF_FormControl.
To make this work, remove an UnownedPtr vector in CPDF_FormField and
make CPDF_InteractiveForm manage it instead.
Also simplify some code within CPDF_FormControl and
CPDF_InteractiveForm.
Change-Id: Ifc3a979dcdb992376a48db7a40840d2e76078500
Reviewed-on: https://pdfium-review.googlesource.com/c/43938
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'core/fpdfdoc/cpdf_formcontrol.cpp')
-rw-r--r-- | core/fpdfdoc/cpdf_formcontrol.cpp | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/core/fpdfdoc/cpdf_formcontrol.cpp b/core/fpdfdoc/cpdf_formcontrol.cpp index a1f1f8f26e..edd5fe566c 100644 --- a/core/fpdfdoc/cpdf_formcontrol.cpp +++ b/core/fpdfdoc/cpdf_formcontrol.cpp @@ -71,10 +71,8 @@ WideString CPDF_FormControl::GetExportValue() const { GetType() == CPDF_FormField::kRadioButton); ByteString csOn = GetOnStateName(); CPDF_Array* pArray = ToArray(FPDF_GetFieldAttr(m_pField->GetDict(), "Opt")); - if (pArray) { - int iIndex = m_pField->GetControlIndex(this); - csOn = pArray->GetStringAt(iIndex); - } + if (pArray) + csOn = pArray->GetStringAt(m_pField->GetControlIndex(this)); if (csOn.IsEmpty()) csOn = "Yes"; return PDF_DecodeText(csOn); @@ -196,9 +194,9 @@ CPDF_DefaultAppearance CPDF_FormControl::GetDefaultAppearance() const { return CPDF_DefaultAppearance(m_pWidgetDict->GetStringFor("DA")); CPDF_Object* pObj = FPDF_GetFieldAttr(m_pField->GetDict(), "DA"); - if (pObj) - return CPDF_DefaultAppearance(pObj->GetString()); - return m_pField->GetForm()->GetDefaultAppearance(); + if (!pObj) + return m_pForm->GetDefaultAppearance(); + return CPDF_DefaultAppearance(pObj->GetString()); } CPDF_Font* CPDF_FormControl::GetDefaultControlFont() { @@ -214,14 +212,13 @@ CPDF_Font* CPDF_FormControl::GetDefaultControlFont() { if (pFonts) { CPDF_Dictionary* pElement = pFonts->GetDictFor(*csFontNameTag); if (pElement) { - CPDF_Font* pFont = - m_pField->GetForm()->GetDocument()->LoadFont(pElement); + CPDF_Font* pFont = m_pForm->GetDocument()->LoadFont(pElement); if (pFont) return pFont; } } } - if (CPDF_Font* pFormFont = m_pField->GetForm()->GetFormFont(*csFontNameTag)) + if (CPDF_Font* pFormFont = m_pForm->GetFormFont(*csFontNameTag)) return pFormFont; CPDF_Dictionary* pPageDict = m_pWidgetDict->GetDictFor("P"); @@ -231,8 +228,7 @@ CPDF_Font* CPDF_FormControl::GetDefaultControlFont() { if (pFonts) { CPDF_Dictionary* pElement = pFonts->GetDictFor(*csFontNameTag); if (pElement) { - CPDF_Font* pFont = - m_pField->GetForm()->GetDocument()->LoadFont(pElement); + CPDF_Font* pFont = m_pForm->GetDocument()->LoadFont(pElement); if (pFont) return pFont; } @@ -250,5 +246,5 @@ int CPDF_FormControl::GetControlAlignment() const { CPDF_Object* pObj = FPDF_GetFieldAttr(m_pField->GetDict(), "Q"); if (pObj) return pObj->GetInteger(); - return m_pField->GetForm()->GetFormAlignment(); + return m_pForm->GetFormAlignment(); } |