diff options
author | Tom Sepez <tsepez@chromium.org> | 2017-05-24 14:07:18 -0700 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-05-24 21:19:30 +0000 |
commit | 4734512572776f8fc705e28fba8a46d981372e99 (patch) | |
tree | f791427bf7d0acfb590880c8bcc1f4c4c370dba6 /core/fpdfapi/page/cpdf_color.cpp | |
parent | a38f7989beacdf0a73441e4096d9ce7a196b10d3 (diff) | |
download | pdfium-4734512572776f8fc705e28fba8a46d981372e99.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.cpp | 31 |
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 { |