summaryrefslogtreecommitdiff
path: root/core/fpdfapi/page/cpdf_color.cpp
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2017-05-24 14:07:18 -0700
committerChromium commit bot <commit-bot@chromium.org>2017-05-24 21:19:30 +0000
commit4734512572776f8fc705e28fba8a46d981372e99 (patch)
treef791427bf7d0acfb590880c8bcc1f4c4c370dba6 /core/fpdfapi/page/cpdf_color.cpp
parenta38f7989beacdf0a73441e4096d9ce7a196b10d3 (diff)
downloadpdfium-chromium/3110.tar.xz
Convert to CFX_UnownedPtr, part 8chromium/3110
Change-Id: I99d6b4df72e369652301c36e4046f03ef95ed07d Reviewed-on: https://pdfium-review.googlesource.com/5837 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
Diffstat (limited to 'core/fpdfapi/page/cpdf_color.cpp')
-rw-r--r--core/fpdfapi/page/cpdf_color.cpp31
1 files changed, 19 insertions, 12 deletions
diff --git a/core/fpdfapi/page/cpdf_color.cpp b/core/fpdfapi/page/cpdf_color.cpp
index ca0e621530..7e0675df15 100644
--- a/core/fpdfapi/page/cpdf_color.cpp
+++ b/core/fpdfapi/page/cpdf_color.cpp
@@ -42,12 +42,17 @@ void CPDF_Color::ReleaseBuffer() {
}
void CPDF_Color::ReleaseColorSpace() {
- if (!m_pCS || !m_pCS->m_pDocument)
+ if (!m_pCS)
+ return;
+
+ CPDF_Document* pDoc = m_pCS->GetDocument();
+ if (!pDoc)
return;
- auto* pPageData = m_pCS->m_pDocument->GetPageData();
+ auto* pPageData = pDoc->GetPageData();
if (pPageData)
pPageData->ReleaseColorSpace(m_pCS->GetArray());
+
m_pCS = nullptr;
}
@@ -111,16 +116,17 @@ void CPDF_Color::SetValue(CPDF_Pattern* pPattern, float* comps, int ncomps) {
void CPDF_Color::Copy(const CPDF_Color* pSrc) {
ReleaseBuffer();
ReleaseColorSpace();
-
m_pCS = pSrc->m_pCS;
- if (m_pCS && m_pCS->m_pDocument) {
- CPDF_Array* pArray = m_pCS->GetArray();
- if (pArray)
- m_pCS = m_pCS->m_pDocument->GetPageData()->GetCopiedColorSpace(pArray);
- }
if (!m_pCS)
return;
+ CPDF_Document* pDoc = m_pCS->GetDocument();
+ CPDF_Array* pArray = m_pCS->GetArray();
+ if (pDoc && pArray) {
+ m_pCS = pDoc->GetPageData()->GetCopiedColorSpace(pArray);
+ if (!m_pCS)
+ return;
+ }
m_pBuffer = m_pCS->CreateBuf();
memcpy(m_pBuffer, pSrc->m_pBuffer, m_pCS->GetBufSize());
if (m_pCS->GetFamily() != PDFCS_PATTERN)
@@ -128,10 +134,11 @@ void CPDF_Color::Copy(const CPDF_Color* pSrc) {
PatternValue* pValue = reinterpret_cast<PatternValue*>(m_pBuffer);
CPDF_Pattern* pPattern = pValue->m_pPattern;
- if (pPattern) {
- pValue->m_pPattern = pPattern->document()->GetPageData()->GetPattern(
- pPattern->pattern_obj(), false, pPattern->parent_matrix());
- }
+ if (!pPattern)
+ return;
+
+ pValue->m_pPattern = pPattern->document()->GetPageData()->GetPattern(
+ pPattern->pattern_obj(), false, pPattern->parent_matrix());
}
bool CPDF_Color::GetRGB(int* R, int* G, int* B) const {