From 39869b641511c882d78e17548293cdb458c36f38 Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Tue, 20 Oct 2015 14:57:56 -0400 Subject: Revert "Revert "Add type cast definitions for CPDF_Dictionary."" This reverts commit 937840e1722d1f2b77d80575d6e710d760662c9c. Add type cast definitions for CPDF_Dictionary. This CL adds ToCPDFDictionary type definitions and updates one file to use instead of straight casts. I had to fix two places where we'd casted off the constness of the original pointer. BUG=pdfium:201 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1420583003 . --- core/src/fpdfdoc/doc_form.cpp | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) (limited to 'core/src/fpdfdoc/doc_form.cpp') diff --git a/core/src/fpdfdoc/doc_form.cpp b/core/src/fpdfdoc/doc_form.cpp index 17f1808444..8078608883 100644 --- a/core/src/fpdfdoc/doc_form.cpp +++ b/core/src/fpdfdoc/doc_form.cpp @@ -854,9 +854,9 @@ CPDF_FormField* CPDF_InterForm::GetFieldInCalculationOrder(int index) { if (pArray == NULL) { return NULL; } - CPDF_Object* pElement = pArray->GetElementValue(index); - if (pElement != NULL && pElement->GetType() == PDFOBJ_DICTIONARY) { - return GetFieldByDict((CPDF_Dictionary*)pElement); + if (CPDF_Dictionary* pElement = + ToDictionary(pArray->GetElementValue(index))) { + return GetFieldByDict(pElement); } return NULL; } @@ -1049,25 +1049,24 @@ void CPDF_InterForm::FixPageFields(const CPDF_Page* pPage) { } } } -CPDF_FormField* CPDF_InterForm::AddTerminalField( - const CPDF_Dictionary* pFieldDict) { +CPDF_FormField* CPDF_InterForm::AddTerminalField(CPDF_Dictionary* pFieldDict) { if (!pFieldDict->KeyExist(FX_BSTRC("T"))) { return NULL; } - CPDF_Dictionary* pDict = (CPDF_Dictionary*)pFieldDict; - CFX_WideString csWName = GetFullName(pDict); + CPDF_Dictionary* pDict = pFieldDict; + CFX_WideString csWName = GetFullName(pFieldDict); if (csWName.IsEmpty()) { return NULL; } CPDF_FormField* pField = NULL; pField = m_pFieldTree->GetField(csWName); if (pField == NULL) { - CPDF_Dictionary* pParent = (CPDF_Dictionary*)pFieldDict; + CPDF_Dictionary* pParent = pFieldDict; if (!pFieldDict->KeyExist(FX_BSTRC("T")) && pFieldDict->GetString(FX_BSTRC("Subtype")) == FX_BSTRC("Widget")) { pParent = pFieldDict->GetDict(FX_BSTRC("Parent")); if (!pParent) { - pParent = (CPDF_Dictionary*)pFieldDict; + pParent = pFieldDict; } } if (pParent && pParent != pFieldDict && @@ -1116,15 +1115,14 @@ CPDF_FormField* CPDF_InterForm::AddTerminalField( } return pField; } -CPDF_FormControl* CPDF_InterForm::AddControl( - const CPDF_FormField* pField, - const CPDF_Dictionary* pWidgetDict) { +CPDF_FormControl* CPDF_InterForm::AddControl(const CPDF_FormField* pField, + CPDF_Dictionary* pWidgetDict) { const auto it = m_ControlMap.find(pWidgetDict); if (it != m_ControlMap.end()) return it->second; - CPDF_FormControl* pControl = new CPDF_FormControl( - (CPDF_FormField*)pField, (CPDF_Dictionary*)pWidgetDict); + CPDF_FormControl* pControl = + new CPDF_FormControl((CPDF_FormField*)pField, pWidgetDict); m_ControlMap[pWidgetDict] = pControl; ((CPDF_FormField*)pField)->m_ControlList.Add(pControl); return pControl; -- cgit v1.2.3