| Index: core/src/fpdfdoc/doc_formcontrol.cpp
|
| diff --git a/core/src/fpdfdoc/doc_formcontrol.cpp b/core/src/fpdfdoc/doc_formcontrol.cpp
|
| index 410f9a1f21aa6ff679e7843eddf47baba8ba13f0..c5f47d20cb486160ea81d5e165c7c21ec34276ec 100644
|
| --- a/core/src/fpdfdoc/doc_formcontrol.cpp
|
| +++ b/core/src/fpdfdoc/doc_formcontrol.cpp
|
| @@ -61,10 +61,10 @@ void CPDF_FormControl::SetOnStateName(const CFX_ByteString& csOn) {
|
| continue;
|
| }
|
| CPDF_Object* pObjDirect1 = pObj1->GetDirect();
|
| - if (pObjDirect1->GetType() != PDFOBJ_DICTIONARY) {
|
| + CPDF_Dictionary* pSubDict = pObjDirect1->AsDictionary();
|
| + if (!pSubDict)
|
| continue;
|
| - }
|
| - CPDF_Dictionary* pSubDict = (CPDF_Dictionary*)pObjDirect1;
|
| +
|
| FX_POSITION pos2 = pSubDict->GetStartPos();
|
| while (pos2) {
|
| CFX_ByteString csKey2;
|
| @@ -287,8 +287,8 @@ CPDF_Font* CPDF_FormControl::GetDefaultControlFont() {
|
| return nullptr;
|
|
|
| CPDF_Object* pObj = FPDF_GetFieldAttr(m_pWidgetDict, "DR");
|
| - if (pObj && pObj->GetType() == PDFOBJ_DICTIONARY) {
|
| - CPDF_Dictionary* pFonts = ((CPDF_Dictionary*)pObj)->GetDict("Font");
|
| + if (CPDF_Dictionary* pDict = ToDictionary(pObj)) {
|
| + CPDF_Dictionary* pFonts = pDict->GetDict("Font");
|
| if (pFonts) {
|
| CPDF_Dictionary* pElement = pFonts->GetDict(csFontNameTag);
|
| if (pElement) {
|
| @@ -304,8 +304,8 @@ CPDF_Font* CPDF_FormControl::GetDefaultControlFont() {
|
|
|
| CPDF_Dictionary* pPageDict = m_pWidgetDict->GetDict("P");
|
| pObj = FPDF_GetFieldAttr(pPageDict, "Resources");
|
| - if (pObj && pObj->GetType() == PDFOBJ_DICTIONARY) {
|
| - CPDF_Dictionary* pFonts = ((CPDF_Dictionary*)pObj)->GetDict("Font");
|
| + if (CPDF_Dictionary* pDict = ToDictionary(pObj)) {
|
| + CPDF_Dictionary* pFonts = pDict->GetDict("Font");
|
| if (pFonts) {
|
| CPDF_Dictionary* pElement = pFonts->GetDict(csFontNameTag);
|
| if (pElement) {
|
|
|