Remove the matrix from CPDF_GeneralState

It is only written to, and never read from. Transitively delete
CPDF_PageObject::TransformGeneralState() as well.

Change-Id: I05b5d8fbd5723b27def7150e72c180cac1a3b154
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/116932
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Thomas Sepez <tsepez@google.com>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/page/cpdf_allstates.cpp b/core/fpdfapi/page/cpdf_allstates.cpp
index d8106d4..f46127c 100644
--- a/core/fpdfapi/page/cpdf_allstates.cpp
+++ b/core/fpdfapi/page/cpdf_allstates.cpp
@@ -168,7 +168,6 @@
         break;
     }
   }
-  mutable_general_state().SetMatrix(m_CTM);
 }
 
 void CPDF_AllStates::ResetTextPosition() {
diff --git a/core/fpdfapi/page/cpdf_generalstate.cpp b/core/fpdfapi/page/cpdf_generalstate.cpp
index c67d30c..35cfff3 100644
--- a/core/fpdfapi/page/cpdf_generalstate.cpp
+++ b/core/fpdfapi/page/cpdf_generalstate.cpp
@@ -260,14 +260,6 @@
   m_Ref.GetPrivateCopy()->m_TextKnockout = knockout;
 }
 
-void CPDF_GeneralState::SetMatrix(const CFX_Matrix& matrix) {
-  m_Ref.GetPrivateCopy()->m_Matrix = matrix;
-}
-
-CFX_Matrix* CPDF_GeneralState::GetMutableMatrix() {
-  return &m_Ref.GetPrivateCopy()->m_Matrix;
-}
-
 void CPDF_GeneralState::SetGraphicsResourceNames(
     std::vector<ByteString> names) {
   m_Ref.GetPrivateCopy()->m_GraphicsResourceNames = std::move(names);
@@ -297,7 +289,6 @@
       m_FillAlpha(that.m_FillAlpha),
       m_pTR(that.m_pTR),
       m_pTransferFunc(that.m_pTransferFunc),
-      m_Matrix(that.m_Matrix),
       m_RenderIntent(that.m_RenderIntent),
       m_StrokeAdjust(that.m_StrokeAdjust),
       m_AlphaSource(that.m_AlphaSource),
diff --git a/core/fpdfapi/page/cpdf_generalstate.h b/core/fpdfapi/page/cpdf_generalstate.h
index 667a8e7..4552f21 100644
--- a/core/fpdfapi/page/cpdf_generalstate.h
+++ b/core/fpdfapi/page/cpdf_generalstate.h
@@ -79,9 +79,6 @@
   void SetAlphaSource(bool source);
   void SetTextKnockout(bool knockout);
 
-  void SetMatrix(const CFX_Matrix& matrix);
-  CFX_Matrix* GetMutableMatrix();
-
   void SetGraphicsResourceNames(std::vector<ByteString> names);
   void AppendGraphicsResourceName(ByteString name);
   pdfium::span<const ByteString> GetGraphicsResourceNames() const;
@@ -101,7 +98,6 @@
     float m_FillAlpha = 1.0f;
     RetainPtr<const CPDF_Object> m_pTR;
     RetainPtr<CPDF_TransferFunc> m_pTransferFunc;
-    CFX_Matrix m_Matrix;
     int m_RenderIntent = 0;
     bool m_StrokeAdjust = false;
     bool m_AlphaSource = false;
diff --git a/core/fpdfapi/page/cpdf_pageobject.cpp b/core/fpdfapi/page/cpdf_pageobject.cpp
index 1af9702..16d1342 100644
--- a/core/fpdfapi/page/cpdf_pageobject.cpp
+++ b/core/fpdfapi/page/cpdf_pageobject.cpp
@@ -99,15 +99,6 @@
   SetDirty(true);
 }
 
-void CPDF_PageObject::TransformGeneralState(const CFX_Matrix& matrix) {
-  CPDF_GeneralState& general_state = mutable_general_state();
-  if (!general_state.HasRef()) {
-    return;
-  }
-  general_state.GetMutableMatrix()->Concat(matrix);
-  SetDirty(true);
-}
-
 FX_RECT CPDF_PageObject::GetBBox() const {
   return GetRect().GetOuterRect();
 }
diff --git a/core/fpdfapi/page/cpdf_pageobject.h b/core/fpdfapi/page/cpdf_pageobject.h
index 95048db..4821321 100644
--- a/core/fpdfapi/page/cpdf_pageobject.h
+++ b/core/fpdfapi/page/cpdf_pageobject.h
@@ -63,7 +63,6 @@
   void SetDirty(bool value) { m_bDirty = value; }
   bool IsDirty() const { return m_bDirty; }
   void TransformClipPath(const CFX_Matrix& matrix);
-  void TransformGeneralState(const CFX_Matrix& matrix);
 
   void SetOriginalRect(const CFX_FloatRect& rect) { m_OriginalRect = rect; }
   const CFX_FloatRect& GetOriginalRect() const { return m_OriginalRect; }
diff --git a/fpdfsdk/fpdf_transformpage.cpp b/fpdfsdk/fpdf_transformpage.cpp
index e74d9d7..c8cbcaf 100644
--- a/fpdfsdk/fpdf_transformpage.cpp
+++ b/fpdfsdk/fpdf_transformpage.cpp
@@ -299,7 +299,6 @@
   // object is already transformed.
   if (!pPageObj->IsShading())
     pPageObj->TransformClipPath(matrix);
-  pPageObj->TransformGeneralState(matrix);
 }
 
 FPDF_EXPORT FPDF_CLIPPATH FPDF_CALLCONV