diff options
author | Lei Zhang <thestig@chromium.org> | 2018-04-13 18:31:55 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-04-13 18:31:55 +0000 |
commit | dc62019316b411c2e8fe1e9c1a3aa5fb89762cd4 (patch) | |
tree | d6d4fe77336ad2f92580a9f0e363837958cdcde0 | |
parent | 00e72c1d1787c71e08d42a06cca3a53419e369da (diff) | |
download | pdfium-dc62019316b411c2e8fe1e9c1a3aa5fb89762cd4.tar.xz |
Get rid of CPDF_Color::GetColorSpace().
Replace it with more narrowly focused methods to get specific bits from
the colorspace.
Change-Id: Ifd2980f0fd06230d4d94d28eddf72219d2e9e6eb
Reviewed-on: https://pdfium-review.googlesource.com/30590
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
-rw-r--r-- | core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp | 3 | ||||
-rw-r--r-- | core/fpdfapi/page/cpdf_color.cpp | 8 | ||||
-rw-r--r-- | core/fpdfapi/page/cpdf_color.h | 4 | ||||
-rw-r--r-- | core/fpdfapi/page/cpdf_colorstate.cpp | 2 |
4 files changed, 12 insertions, 5 deletions
diff --git a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp index 0584e7be48..2a59123344 100644 --- a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp +++ b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp @@ -37,8 +37,7 @@ std::ostream& operator<<(std::ostream& ar, const CFX_Matrix& matrix) { bool GetColor(const CPDF_Color* pColor, float* rgb) { int intRGB[3]; - if (!pColor || - pColor->GetColorSpace() != CPDF_ColorSpace::GetStockCS(PDFCS_DEVICERGB) || + if (!pColor || !pColor->IsColorSpaceRGB() || !pColor->GetRGB(&intRGB[0], &intRGB[1], &intRGB[2])) { return false; } diff --git a/core/fpdfapi/page/cpdf_color.cpp b/core/fpdfapi/page/cpdf_color.cpp index 3c87457d1b..dfee9d93ca 100644 --- a/core/fpdfapi/page/cpdf_color.cpp +++ b/core/fpdfapi/page/cpdf_color.cpp @@ -146,6 +146,14 @@ void CPDF_Color::Copy(const CPDF_Color& src) { pPattern->pattern_obj(), false, pPattern->parent_matrix()); } +uint32_t CPDF_Color::CountComponents() const { + return m_pCS->CountComponents(); +} + +bool CPDF_Color::IsColorSpaceRGB() const { + return m_pCS == CPDF_ColorSpace::GetStockCS(PDFCS_DEVICERGB); +} + bool CPDF_Color::GetRGB(int* R, int* G, int* B) const { if (!m_pCS || !m_pBuffer) return false; diff --git a/core/fpdfapi/page/cpdf_color.h b/core/fpdfapi/page/cpdf_color.h index 9b94f0d53b..3448c152e2 100644 --- a/core/fpdfapi/page/cpdf_color.h +++ b/core/fpdfapi/page/cpdf_color.h @@ -29,13 +29,13 @@ class CPDF_Color { void SetValueForPattern(CPDF_Pattern* pPattern, const std::vector<float>& values); + uint32_t CountComponents() const; + bool IsColorSpaceRGB() const; bool GetRGB(int* R, int* G, int* B) const; // Should only be called if IsPattern() returns true. CPDF_Pattern* GetPattern() const; - const CPDF_ColorSpace* GetColorSpace() const { return m_pCS; } - protected: void ReleaseBuffer(); void ReleaseColorSpace(); diff --git a/core/fpdfapi/page/cpdf_colorstate.cpp b/core/fpdfapi/page/cpdf_colorstate.cpp index 492114ab00..9abd9f78e4 100644 --- a/core/fpdfapi/page/cpdf_colorstate.cpp +++ b/core/fpdfapi/page/cpdf_colorstate.cpp @@ -128,7 +128,7 @@ void CPDF_ColorState::SetColor(CPDF_ColorSpace* pCS, else if (color->IsNull()) color->SetColorSpace(CPDF_ColorSpace::GetStockCS(PDFCS_DEVICEGRAY)); - if (color->GetColorSpace()->CountComponents() > values.size()) + if (color->CountComponents() > values.size()) return; if (!color->IsPattern()) |