summaryrefslogtreecommitdiff
path: root/core/src/fpdfapi/fpdf_page/fpdf_page_colors.cpp
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2015-10-22 15:02:06 -0400
committerDan Sinclair <dsinclair@chromium.org>2015-10-22 15:02:06 -0400
commit2b11dc1220746d2f6f97a940fc9e4235c8ed4975 (patch)
treee25b2ba13112f4ead789260ee57fe5b40c13b83e /core/src/fpdfapi/fpdf_page/fpdf_page_colors.cpp
parentbc6c6723c37772b02de9e6e43fa0fd9439874905 (diff)
downloadpdfium-2b11dc1220746d2f6f97a940fc9e4235c8ed4975.tar.xz
Merge to XFA: Add type cast definitions for CPDF_Array.
This Cl adds ToArray, CPDF_Object::AsArray and CPDF_Object::IsArray and updates the src to use them as needed. BUG=pdfium:201 R=thestig@chromium.org, tsepez@chromium.org Review URL: https://codereview.chromium.org/1417893003 . (cherry picked from commit c2bfc000e502c42c9a3017038fd9104c7997d126) Review URL: https://codereview.chromium.org/1419643005 .
Diffstat (limited to 'core/src/fpdfapi/fpdf_page/fpdf_page_colors.cpp')
-rw-r--r--core/src/fpdfapi/fpdf_page/fpdf_page_colors.cpp33
1 files changed, 14 insertions, 19 deletions
diff --git a/core/src/fpdfapi/fpdf_page/fpdf_page_colors.cpp b/core/src/fpdfapi/fpdf_page/fpdf_page_colors.cpp
index 73b1091856..4f54c01ce7 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')) {