De-virtualize CPDF_ColorSpace::GetPatternRGB().
Its only caller has already cast to the only subclass that implements
it before calling. Then remove unreachable stub in parent class.
Change-Id: Ia9e4809f7ec5a51cfdc614b71542b4036633ca24
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/84690
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfapi/page/cpdf_colorspace.cpp b/core/fpdfapi/page/cpdf_colorspace.cpp
index 5ab6f40..d0c0323 100644
--- a/core/fpdfapi/page/cpdf_colorspace.cpp
+++ b/core/fpdfapi/page/cpdf_colorspace.cpp
@@ -662,14 +662,6 @@
return nullptr;
}
-bool CPDF_ColorSpace::GetPatternRGB(const PatternValue& value,
- float* R,
- float* G,
- float* B) const {
- NOTREACHED();
- return false;
-}
-
CPDF_ColorSpace::CPDF_ColorSpace(CPDF_Document* pDoc, Family family)
: m_pDocument(pDoc), m_Family(family) {}
diff --git a/core/fpdfapi/page/cpdf_colorspace.h b/core/fpdfapi/page/cpdf_colorspace.h
index f0a9e60..6b5b8c7 100644
--- a/core/fpdfapi/page/cpdf_colorspace.h
+++ b/core/fpdfapi/page/cpdf_colorspace.h
@@ -96,6 +96,7 @@
GetFamily() == Family::kPattern;
}
+ // Use CPDF_Pattern::GetPatternRGB() instead of GetRGB() for patterns.
virtual bool GetRGB(pdfium::span<const float> pBuf,
float* R,
float* G,
@@ -118,12 +119,6 @@
virtual CPDF_PatternCS* AsPatternCS();
virtual const CPDF_PatternCS* AsPatternCS() const;
- // Use instead of GetRGB() for patterns.
- virtual bool GetPatternRGB(const PatternValue& value,
- float* R,
- float* G,
- float* B) const;
-
protected:
CPDF_ColorSpace(CPDF_Document* pDoc, Family family);
~CPDF_ColorSpace() override;
diff --git a/core/fpdfapi/page/cpdf_patterncs.h b/core/fpdfapi/page/cpdf_patterncs.h
index 2df1613..c94b5b2 100644
--- a/core/fpdfapi/page/cpdf_patterncs.h
+++ b/core/fpdfapi/page/cpdf_patterncs.h
@@ -28,16 +28,17 @@
float* R,
float* G,
float* B) const override;
- bool GetPatternRGB(const PatternValue& value,
- float* R,
- float* G,
- float* B) const override;
CPDF_PatternCS* AsPatternCS() override;
const CPDF_PatternCS* AsPatternCS() const override;
uint32_t v_Load(CPDF_Document* pDoc,
const CPDF_Array* pArray,
std::set<const CPDF_Object*>* pVisited) override;
+ bool GetPatternRGB(const PatternValue& value,
+ float* R,
+ float* G,
+ float* B) const;
+
private:
explicit CPDF_PatternCS(CPDF_Document* pDoc);