summaryrefslogtreecommitdiff
path: root/core/src/fpdfapi/fpdf_page/fpdf_page_pattern.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_pattern.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_pattern.cpp')
-rw-r--r--core/src/fpdfapi/fpdf_page/fpdf_page_pattern.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/core/src/fpdfapi/fpdf_page/fpdf_page_pattern.cpp b/core/src/fpdfapi/fpdf_page/fpdf_page_pattern.cpp
index 3f915a7b79..a73bdc9e8e 100644
--- a/core/src/fpdfapi/fpdf_page/fpdf_page_pattern.cpp
+++ b/core/src/fpdfapi/fpdf_page/fpdf_page_pattern.cpp
@@ -118,14 +118,11 @@ FX_BOOL CPDF_ShadingPattern::Load() {
}
CPDF_Object* pFunc = pShadingDict->GetElementValue(FX_BSTRC("Function"));
if (pFunc) {
- if (pFunc->GetType() == PDFOBJ_ARRAY) {
- m_nFuncs = ((CPDF_Array*)pFunc)->GetCount();
- if (m_nFuncs > 4) {
- m_nFuncs = 4;
- }
+ if (CPDF_Array* pArray = pFunc->AsArray()) {
+ m_nFuncs = std::min<int>(pArray->GetCount(), 4);
+
for (int i = 0; i < m_nFuncs; i++) {
- m_pFunctions[i] =
- CPDF_Function::Load(((CPDF_Array*)pFunc)->GetElementValue(i));
+ m_pFunctions[i] = CPDF_Function::Load(pArray->GetElementValue(i));
}
} else {
m_pFunctions[0] = CPDF_Function::Load(pFunc);