Index: core/src/fpdfdoc/doc_utils.cpp |
diff --git a/core/src/fpdfdoc/doc_utils.cpp b/core/src/fpdfdoc/doc_utils.cpp |
index 1ed0017078ee399a4cd03a347400ef237533d073..7d3fdf2f230b9501fc5d21fb91061d2db7aba883 100644 |
--- a/core/src/fpdfdoc/doc_utils.cpp |
+++ b/core/src/fpdfdoc/doc_utils.cpp |
@@ -290,9 +290,8 @@ FX_DWORD CountInterFormFonts(CPDF_Dictionary* pFormDict) { |
if (pObj == NULL) { |
continue; |
} |
- CPDF_Object* pDirect = pObj->GetDirect(); |
- if (pDirect != NULL && pDirect->GetType() == PDFOBJ_DICTIONARY) { |
- if (((CPDF_Dictionary*)pDirect)->GetString("Type") == "Font") { |
+ if (CPDF_Dictionary* pDirect = ToDictionary(pObj->GetDirect())) { |
+ if (pDirect->GetString("Type") == "Font") { |
dwCount++; |
} |
} |
@@ -323,14 +322,11 @@ CPDF_Font* GetInterFormFont(CPDF_Dictionary* pFormDict, |
if (pObj == NULL) { |
continue; |
} |
- CPDF_Object* pDirect = pObj->GetDirect(); |
- if (pDirect == NULL || pDirect->GetType() != PDFOBJ_DICTIONARY) { |
+ CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect()); |
+ if (!pElement) |
continue; |
- } |
- CPDF_Dictionary* pElement = (CPDF_Dictionary*)pDirect; |
- if (pElement->GetString("Type") != "Font") { |
+ if (pElement->GetString("Type") != "Font") |
continue; |
- } |
if (dwCount == index) { |
csNameTag = csKey; |
return pDocument->LoadFont(pElement); |
@@ -386,18 +382,16 @@ CPDF_Font* GetInterFormFont(CPDF_Dictionary* pFormDict, |
if (pObj == NULL) { |
continue; |
} |
- CPDF_Object* pDirect = pObj->GetDirect(); |
- if (pDirect == NULL || pDirect->GetType() != PDFOBJ_DICTIONARY) { |
+ CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect()); |
+ if (!pElement) |
continue; |
- } |
- CPDF_Dictionary* pElement = (CPDF_Dictionary*)pDirect; |
- if (pElement->GetString("Type") != "Font") { |
+ if (pElement->GetString("Type") != "Font") |
continue; |
- } |
+ |
CPDF_Font* pFind = pDocument->LoadFont(pElement); |
- if (pFind == NULL) { |
+ if (!pFind) |
continue; |
- } |
+ |
CFX_ByteString csBaseFont; |
csBaseFont = pFind->GetBaseFont(); |
csBaseFont.Remove(' '); |
@@ -431,14 +425,11 @@ CPDF_Font* GetNativeInterFormFont(CPDF_Dictionary* pFormDict, |
if (pObj == NULL) { |
continue; |
} |
- CPDF_Object* pDirect = pObj->GetDirect(); |
- if (pDirect == NULL || pDirect->GetType() != PDFOBJ_DICTIONARY) { |
+ CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect()); |
+ if (!pElement) |
continue; |
- } |
- CPDF_Dictionary* pElement = (CPDF_Dictionary*)pDirect; |
- if (pElement->GetString("Type") != "Font") { |
+ if (pElement->GetString("Type") != "Font") |
continue; |
- } |
CPDF_Font* pFind = pDocument->LoadFont(pElement); |
if (pFind == NULL) { |
continue; |
@@ -492,11 +483,9 @@ FX_BOOL FindInterFormFont(CPDF_Dictionary* pFormDict, |
if (pObj == NULL) { |
continue; |
} |
- CPDF_Object* pDirect = pObj->GetDirect(); |
- if (pDirect == NULL || pDirect->GetType() != PDFOBJ_DICTIONARY) { |
+ CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect()); |
+ if (!pElement) |
continue; |
- } |
- CPDF_Dictionary* pElement = (CPDF_Dictionary*)pDirect; |
if (pElement->GetString("Type") != "Font") { |
continue; |
} |
@@ -534,11 +523,9 @@ FX_BOOL FindInterFormFont(CPDF_Dictionary* pFormDict, |
if (pObj == NULL) { |
continue; |
} |
- CPDF_Object* pDirect = pObj->GetDirect(); |
- if (pDirect == NULL || pDirect->GetType() != PDFOBJ_DICTIONARY) { |
+ CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect()); |
+ if (!pElement) |
continue; |
- } |
- CPDF_Dictionary* pElement = (CPDF_Dictionary*)pDirect; |
if (pElement->GetString("Type") != "Font") { |
continue; |
} |