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