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
