From 937840e1722d1f2b77d80575d6e710d760662c9c Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Tue, 20 Oct 2015 13:30:34 -0400 Subject: Revert "Add type cast definitions for CPDF_Dictionary." This reverts commit 4816432671eef6467354aa252f22bb80acc315b7. Reason, broke the javascript_test Rendering PDF file /mnt/data/b/build/slave/linux/build/pdfium/out/Debug/gen/pdfium/testing/javascript/document_methods.pdf. Non-linearized path... FAILURE: document_methods.in; Command '['/mnt/data/b/build/slave/linux/build/pdfium/out/Debug/pdfium_test', '/mnt/data/b/build/slave/linux/build/pdfium/out/Debug/gen/pdfium/testing/javascript/document_methods.pdf']' returned non-zero exit status -11 BUG=pdfium:201 TBR=thestig@chromium.org Review URL: https://codereview.chromium.org/1412413002 . --- core/src/fpdfdoc/doc_form.cpp | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 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 8078608883..17f1808444 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; } - if (CPDF_Dictionary* pElement = - ToDictionary(pArray->GetElementValue(index))) { - return GetFieldByDict(pElement); + CPDF_Object* pElement = pArray->GetElementValue(index); + if (pElement != NULL && pElement->GetType() == PDFOBJ_DICTIONARY) { + return GetFieldByDict((CPDF_Dictionary*)pElement); } return NULL; } @@ -1049,24 +1049,25 @@ void CPDF_InterForm::FixPageFields(const CPDF_Page* pPage) { } } } -CPDF_FormField* CPDF_InterForm::AddTerminalField(CPDF_Dictionary* pFieldDict) { +CPDF_FormField* CPDF_InterForm::AddTerminalField( + const CPDF_Dictionary* pFieldDict) { if (!pFieldDict->KeyExist(FX_BSTRC("T"))) { return NULL; } - CPDF_Dictionary* pDict = pFieldDict; - CFX_WideString csWName = GetFullName(pFieldDict); + CPDF_Dictionary* pDict = (CPDF_Dictionary*)pFieldDict; + CFX_WideString csWName = GetFullName(pDict); if (csWName.IsEmpty()) { return NULL; } CPDF_FormField* pField = NULL; pField = m_pFieldTree->GetField(csWName); if (pField == NULL) { - CPDF_Dictionary* pParent = pFieldDict; + CPDF_Dictionary* pParent = (CPDF_Dictionary*)pFieldDict; if (!pFieldDict->KeyExist(FX_BSTRC("T")) && pFieldDict->GetString(FX_BSTRC("Subtype")) == FX_BSTRC("Widget")) { pParent = pFieldDict->GetDict(FX_BSTRC("Parent")); if (!pParent) { - pParent = pFieldDict; + pParent = (CPDF_Dictionary*)pFieldDict; } } if (pParent && pParent != pFieldDict && @@ -1115,14 +1116,15 @@ CPDF_FormField* CPDF_InterForm::AddTerminalField(CPDF_Dictionary* pFieldDict) { } return pField; } -CPDF_FormControl* CPDF_InterForm::AddControl(const CPDF_FormField* pField, - CPDF_Dictionary* pWidgetDict) { +CPDF_FormControl* CPDF_InterForm::AddControl( + const CPDF_FormField* pField, + const 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, pWidgetDict); + CPDF_FormControl* pControl = new CPDF_FormControl( + (CPDF_FormField*)pField, (CPDF_Dictionary*)pWidgetDict); m_ControlMap[pWidgetDict] = pControl; ((CPDF_FormField*)pField)->m_ControlList.Add(pControl); return pControl; -- cgit v1.2.3