Index: core/src/fpdfapi/fpdf_page/fpdf_page_colors.cpp |
diff --git a/core/src/fpdfapi/fpdf_page/fpdf_page_colors.cpp b/core/src/fpdfapi/fpdf_page/fpdf_page_colors.cpp |
index 73b10918564824b9d002e6f8267f3cbcbaa69be9..4f54c01ce720f2afc6ff3a15ebb09e01cdbefb79 100644 |
--- a/core/src/fpdfapi/fpdf_page/fpdf_page_colors.cpp |
+++ b/core/src/fpdfapi/fpdf_page/fpdf_page_colors.cpp |
@@ -1139,14 +1139,11 @@ void CPDF_DeviceNCS::GetDefaultValue(int iComponent, |
max = 1.0f; |
} |
FX_BOOL CPDF_DeviceNCS::v_Load(CPDF_Document* pDoc, CPDF_Array* pArray) { |
- CPDF_Object* pObj = pArray->GetElementValue(1); |
- if (!pObj) { |
- return FALSE; |
- } |
- if (pObj->GetType() != PDFOBJ_ARRAY) { |
+ CPDF_Array* pObj = ToArray(pArray->GetElementValue(1)); |
+ if (!pObj) |
return FALSE; |
- } |
- m_nComponents = ((CPDF_Array*)pObj)->GetCount(); |
+ |
+ m_nComponents = pObj->GetCount(); |
CPDF_Object* pAltCS = pArray->GetElementValue(2); |
if (!pAltCS || pAltCS == m_pArray) { |
return FALSE; |
@@ -1224,21 +1221,19 @@ CPDF_ColorSpace* CPDF_ColorSpace::Load(CPDF_Document* pDoc, CPDF_Object* pObj) { |
} |
return nullptr; |
} |
- if (pObj->GetType() != PDFOBJ_ARRAY) { |
- return NULL; |
- } |
- CPDF_Array* pArray = (CPDF_Array*)pObj; |
- if (pArray->GetCount() == 0) { |
- return NULL; |
- } |
+ |
+ CPDF_Array* pArray = pObj->AsArray(); |
+ if (!pArray || pArray->GetCount() == 0) |
+ return nullptr; |
+ |
CPDF_Object* pFamilyObj = pArray->GetElementValue(0); |
- if (!pFamilyObj) { |
- return NULL; |
- } |
+ if (!pFamilyObj) |
+ return nullptr; |
+ |
CFX_ByteString familyname = pFamilyObj->GetString(); |
- if (pArray->GetCount() == 1) { |
+ if (pArray->GetCount() == 1) |
return _CSFromName(familyname); |
- } |
+ |
CPDF_ColorSpace* pCS = NULL; |
FX_DWORD id = familyname.GetID(); |
if (id == FXBSTR_ID('C', 'a', 'l', 'G')) { |