Remove unused CPDF_ColorSpace::m_pDocument.

Often, this was null, so we pass the actual document everywhere
we need it as a method argument.

Change-Id: Ic39a11fee81e91cc8cb1483a995544f9dd8093e9
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/84711
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 d0c0323..18c6ce7 100644
--- a/core/fpdfapi/page/cpdf_colorspace.cpp
+++ b/core/fpdfapi/page/cpdf_colorspace.cpp
@@ -136,7 +136,7 @@
  private:
   static constexpr float kDefaultGamma = 1.0f;
 
-  explicit CPDF_CalGray(CPDF_Document* pDoc);
+  CPDF_CalGray();
 
   float m_Gamma = kDefaultGamma;
   float m_WhitePoint[kBlackWhitePointCount] = {1.0f, 1.0f, 1.0f};
@@ -167,7 +167,7 @@
   static constexpr size_t kGammaCount = 3;
   static constexpr size_t kMatrixCount = 9;
 
-  explicit CPDF_CalRGB(CPDF_Document* pDoc);
+  CPDF_CalRGB();
 
   float m_WhitePoint[kBlackWhitePointCount] = {1.0f, 1.0f, 1.0f};
   float m_BlackPoint[kBlackWhitePointCount] = {0.0f, 0.0f, 0.0f};
@@ -204,7 +204,7 @@
  private:
   static constexpr size_t kRangesCount = 4;
 
-  explicit CPDF_LabCS(CPDF_Document* pDoc);
+  CPDF_LabCS();
 
   float m_WhitePoint[kBlackWhitePointCount] = {1.0f, 1.0f, 1.0f};
   float m_BlackPoint[kBlackWhitePointCount] = {0.0f, 0.0f, 0.0f};
@@ -234,7 +234,7 @@
                   std::set<const CPDF_Object*>* pVisited) override;
 
  private:
-  explicit CPDF_ICCBasedCS(CPDF_Document* pDoc);
+  CPDF_ICCBasedCS();
 
   // If no valid ICC profile or using sRGB, try looking for an alternate.
   bool FindAlternateProfile(CPDF_Document* pDoc,
@@ -268,7 +268,7 @@
                   std::set<const CPDF_Object*>* pVisited) override;
 
  private:
-  explicit CPDF_IndexedCS(CPDF_Document* pDoc);
+  CPDF_IndexedCS();
 
   RetainPtr<CPDF_ColorSpace> m_pBaseCS;
   uint32_t m_nBaseComponents = 0;
@@ -297,7 +297,7 @@
                   std::set<const CPDF_Object*>* pVisited) override;
 
  private:
-  explicit CPDF_SeparationCS(CPDF_Document* pDoc);
+  CPDF_SeparationCS();
 
   bool m_IsNoneType;
   RetainPtr<CPDF_ColorSpace> m_pAltCS;
@@ -324,7 +324,7 @@
                   std::set<const CPDF_Object*>* pVisited) override;
 
  private:
-  explicit CPDF_DeviceNCS(CPDF_Document* pDoc);
+  CPDF_DeviceNCS();
 
   RetainPtr<CPDF_ColorSpace> m_pAltCS;
   std::unique_ptr<const CPDF_Function> m_pFunc;
@@ -533,7 +533,7 @@
     return GetStockCSForName(familyname);
 
   RetainPtr<CPDF_ColorSpace> pCS =
-      CPDF_ColorSpace::AllocateColorSpace(pDoc, familyname.AsStringView());
+      CPDF_ColorSpace::AllocateColorSpace(familyname.AsStringView());
   if (!pCS)
     return nullptr;
 
@@ -547,26 +547,25 @@
 
 // static
 RetainPtr<CPDF_ColorSpace> CPDF_ColorSpace::AllocateColorSpace(
-    CPDF_Document* pDocument,
     ByteStringView bsFamilyName) {
   switch (bsFamilyName.GetID()) {
     case FXBSTR_ID('C', 'a', 'l', 'G'):
-      return pdfium::MakeRetain<CPDF_CalGray>(pDocument);
+      return pdfium::MakeRetain<CPDF_CalGray>();
     case FXBSTR_ID('C', 'a', 'l', 'R'):
-      return pdfium::MakeRetain<CPDF_CalRGB>(pDocument);
+      return pdfium::MakeRetain<CPDF_CalRGB>();
     case FXBSTR_ID('L', 'a', 'b', 0):
-      return pdfium::MakeRetain<CPDF_LabCS>(pDocument);
+      return pdfium::MakeRetain<CPDF_LabCS>();
     case FXBSTR_ID('I', 'C', 'C', 'B'):
-      return pdfium::MakeRetain<CPDF_ICCBasedCS>(pDocument);
+      return pdfium::MakeRetain<CPDF_ICCBasedCS>();
     case FXBSTR_ID('I', 'n', 'd', 'e'):
     case FXBSTR_ID('I', 0, 0, 0):
-      return pdfium::MakeRetain<CPDF_IndexedCS>(pDocument);
+      return pdfium::MakeRetain<CPDF_IndexedCS>();
     case FXBSTR_ID('S', 'e', 'p', 'a'):
-      return pdfium::MakeRetain<CPDF_SeparationCS>(pDocument);
+      return pdfium::MakeRetain<CPDF_SeparationCS>();
     case FXBSTR_ID('D', 'e', 'v', 'i'):
-      return pdfium::MakeRetain<CPDF_DeviceNCS>(pDocument);
+      return pdfium::MakeRetain<CPDF_DeviceNCS>();
     case FXBSTR_ID('P', 'a', 't', 't'):
-      return pdfium::MakeRetain<CPDF_PatternCS>(pDocument);
+      return pdfium::MakeRetain<CPDF_PatternCS>();
     default:
       return nullptr;
   }
@@ -662,18 +661,15 @@
   return nullptr;
 }
 
-CPDF_ColorSpace::CPDF_ColorSpace(CPDF_Document* pDoc, Family family)
-    : m_pDocument(pDoc), m_Family(family) {}
+CPDF_ColorSpace::CPDF_ColorSpace(Family family) : m_Family(family) {}
 
 CPDF_ColorSpace::~CPDF_ColorSpace() = default;
 
 void CPDF_ColorSpace::SetComponentsForStockCS(uint32_t nComponents) {
-  DCHECK(!m_pDocument);  // Stock colorspace is not associated with a document.
   m_nComponents = nComponents;
 }
 
-CPDF_CalGray::CPDF_CalGray(CPDF_Document* pDoc)
-    : CPDF_ColorSpace(pDoc, Family::kCalGray) {}
+CPDF_CalGray::CPDF_CalGray() : CPDF_ColorSpace(Family::kCalGray) {}
 
 CPDF_CalGray::~CPDF_CalGray() = default;
 
@@ -718,8 +714,7 @@
   }
 }
 
-CPDF_CalRGB::CPDF_CalRGB(CPDF_Document* pDoc)
-    : CPDF_ColorSpace(pDoc, Family::kCalRGB) {}
+CPDF_CalRGB::CPDF_CalRGB() : CPDF_ColorSpace(Family::kCalRGB) {}
 
 CPDF_CalRGB::~CPDF_CalRGB() = default;
 
@@ -809,8 +804,7 @@
   }
 }
 
-CPDF_LabCS::CPDF_LabCS(CPDF_Document* pDoc)
-    : CPDF_ColorSpace(pDoc, Family::kLab) {}
+CPDF_LabCS::CPDF_LabCS() : CPDF_ColorSpace(Family::kLab) {}
 
 CPDF_LabCS::~CPDF_LabCS() = default;
 
@@ -915,8 +909,7 @@
   }
 }
 
-CPDF_ICCBasedCS::CPDF_ICCBasedCS(CPDF_Document* pDoc)
-    : CPDF_ColorSpace(pDoc, Family::kICCBased) {}
+CPDF_ICCBasedCS::CPDF_ICCBasedCS() : CPDF_ColorSpace(Family::kICCBased) {}
 
 CPDF_ICCBasedCS::~CPDF_ICCBasedCS() = default;
 
@@ -1130,8 +1123,7 @@
   return ranges;
 }
 
-CPDF_IndexedCS::CPDF_IndexedCS(CPDF_Document* pDoc)
-    : CPDF_ColorSpace(pDoc, Family::kIndexed) {}
+CPDF_IndexedCS::CPDF_IndexedCS() : CPDF_ColorSpace(Family::kIndexed) {}
 
 CPDF_IndexedCS::~CPDF_IndexedCS() = default;
 
@@ -1216,8 +1208,7 @@
     m_pBaseCS->EnableStdConversion(bEnabled);
 }
 
-CPDF_SeparationCS::CPDF_SeparationCS(CPDF_Document* pDoc)
-    : CPDF_ColorSpace(pDoc, Family::kSeparation) {}
+CPDF_SeparationCS::CPDF_SeparationCS() : CPDF_ColorSpace(Family::kSeparation) {}
 
 CPDF_SeparationCS::~CPDF_SeparationCS() = default;
 
@@ -1296,8 +1287,7 @@
     m_pAltCS->EnableStdConversion(bEnabled);
 }
 
-CPDF_DeviceNCS::CPDF_DeviceNCS(CPDF_Document* pDoc)
-    : CPDF_ColorSpace(pDoc, Family::kDeviceN) {}
+CPDF_DeviceNCS::CPDF_DeviceNCS() : CPDF_ColorSpace(Family::kDeviceN) {}
 
 CPDF_DeviceNCS::~CPDF_DeviceNCS() = default;
 
diff --git a/core/fpdfapi/page/cpdf_colorspace.h b/core/fpdfapi/page/cpdf_colorspace.h
index e76e92d..891c278 100644
--- a/core/fpdfapi/page/cpdf_colorspace.h
+++ b/core/fpdfapi/page/cpdf_colorspace.h
@@ -83,7 +83,6 @@
   static bool IsValidIccComponents(int components);
 
   const CPDF_Array* GetArray() const { return m_pArray.Get(); }
-  const CPDF_Document* GetDocument() const { return m_pDocument.Get(); }
 
   // Should only be called if this colorspace is not a pattern.
   std::vector<float> CreateBufAndSetDefaultColor() const;
@@ -120,7 +119,7 @@
   virtual const CPDF_PatternCS* AsPatternCS() const;
 
  protected:
-  CPDF_ColorSpace(CPDF_Document* pDoc, Family family);
+  explicit CPDF_ColorSpace(Family family);
   ~CPDF_ColorSpace() override;
 
   // Returns the number of components, or 0 on failure.
@@ -134,7 +133,6 @@
 
   bool IsStdConversionEnabled() const { return m_dwStdConversion != 0; }
 
-  UnownedPtr<const CPDF_Document> const m_pDocument;
   RetainPtr<const CPDF_Array> m_pArray;
   const Family m_Family;
 
@@ -143,7 +141,6 @@
   friend class CPDF_CalRGB_TranslateImageLine_Test;
 
   static RetainPtr<CPDF_ColorSpace> AllocateColorSpace(
-      CPDF_Document* pDocument,
       ByteStringView bsFamilyName);
 
   uint32_t m_dwStdConversion = 0;
diff --git a/core/fpdfapi/page/cpdf_colorspace_unittest.cpp b/core/fpdfapi/page/cpdf_colorspace_unittest.cpp
index 77f26a3..b74e758 100644
--- a/core/fpdfapi/page/cpdf_colorspace_unittest.cpp
+++ b/core/fpdfapi/page/cpdf_colorspace_unittest.cpp
@@ -14,8 +14,7 @@
   const uint8_t kSrc[12] = {255, 0, 0, 0, 255, 0, 0, 0, 255, 128, 128, 128};
   const uint8_t kExpect[12] = {255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0};
 
-  RetainPtr<CPDF_ColorSpace> pCal =
-      CPDF_ColorSpace::AllocateColorSpace(nullptr, "CalG");
+  RetainPtr<CPDF_ColorSpace> pCal = CPDF_ColorSpace::AllocateColorSpace("CalG");
   ASSERT_TRUE(pCal);
 
   uint8_t dst[12];
@@ -37,8 +36,7 @@
   const uint8_t kExpectNomask[12] = {0,   0, 255, 0,   255, 0,
                                      255, 0, 0,   128, 128, 128};
 
-  RetainPtr<CPDF_ColorSpace> pCal =
-      CPDF_ColorSpace::AllocateColorSpace(nullptr, "CalR");
+  RetainPtr<CPDF_ColorSpace> pCal = CPDF_ColorSpace::AllocateColorSpace("CalR");
   ASSERT_TRUE(pCal);
 
   uint8_t dst[12];
diff --git a/core/fpdfapi/page/cpdf_devicecs.cpp b/core/fpdfapi/page/cpdf_devicecs.cpp
index 4ceb501..11152e5 100644
--- a/core/fpdfapi/page/cpdf_devicecs.cpp
+++ b/core/fpdfapi/page/cpdf_devicecs.cpp
@@ -27,7 +27,7 @@
 
 }  // namespace
 
-CPDF_DeviceCS::CPDF_DeviceCS(Family family) : CPDF_ColorSpace(nullptr, family) {
+CPDF_DeviceCS::CPDF_DeviceCS(Family family) : CPDF_ColorSpace(family) {
   DCHECK(family == Family::kDeviceGray || family == Family::kDeviceRGB ||
          family == Family::kDeviceCMYK);
   SetComponentsForStockCS(ComponentsForFamily(GetFamily()));
diff --git a/core/fpdfapi/page/cpdf_pagemodule.cpp b/core/fpdfapi/page/cpdf_pagemodule.cpp
index bdea737..e51e88f 100644
--- a/core/fpdfapi/page/cpdf_pagemodule.cpp
+++ b/core/fpdfapi/page/cpdf_pagemodule.cpp
@@ -44,7 +44,7 @@
           CPDF_ColorSpace::Family::kDeviceRGB)),
       m_StockCMYKCS(pdfium::MakeRetain<CPDF_DeviceCS>(
           CPDF_ColorSpace::Family::kDeviceCMYK)),
-      m_StockPatternCS(pdfium::MakeRetain<CPDF_PatternCS>(nullptr)) {
+      m_StockPatternCS(pdfium::MakeRetain<CPDF_PatternCS>()) {
   m_StockPatternCS->InitializeStockPattern();
   CPDF_FontGlobals::Create();
   CPDF_FontGlobals::GetInstance()->LoadEmbeddedMaps();
diff --git a/core/fpdfapi/page/cpdf_patterncs.cpp b/core/fpdfapi/page/cpdf_patterncs.cpp
index 2c32d9c..adb15c8 100644
--- a/core/fpdfapi/page/cpdf_patterncs.cpp
+++ b/core/fpdfapi/page/cpdf_patterncs.cpp
@@ -11,8 +11,7 @@
 #include "core/fpdfapi/parser/cpdf_document.h"
 #include "third_party/base/notreached.h"
 
-CPDF_PatternCS::CPDF_PatternCS(CPDF_Document* pDoc)
-    : CPDF_ColorSpace(pDoc, Family::kPattern) {}
+CPDF_PatternCS::CPDF_PatternCS() : CPDF_ColorSpace(Family::kPattern) {}
 
 CPDF_PatternCS::~CPDF_PatternCS() = default;
 
diff --git a/core/fpdfapi/page/cpdf_patterncs.h b/core/fpdfapi/page/cpdf_patterncs.h
index c94b5b2..7b14e04 100644
--- a/core/fpdfapi/page/cpdf_patterncs.h
+++ b/core/fpdfapi/page/cpdf_patterncs.h
@@ -40,7 +40,7 @@
                      float* B) const;
 
  private:
-  explicit CPDF_PatternCS(CPDF_Document* pDoc);
+  CPDF_PatternCS();
 
   RetainPtr<CPDF_ColorSpace> m_pBaseCS;
 };