Pass matrix to CPDF_ClipPath::Transform() by const-ref.
It's never null - either &var or the caller is checking for nullness first.
Change-Id: I84ab44275095eda3023810312b27d84d85fb0293
Reviewed-on: https://pdfium-review.googlesource.com/c/47513
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfapi/page/cpdf_clippath.cpp b/core/fpdfapi/page/cpdf_clippath.cpp
index 9782469..220e7f8 100644
--- a/core/fpdfapi/page/cpdf_clippath.cpp
+++ b/core/fpdfapi/page/cpdf_clippath.cpp
@@ -105,7 +105,8 @@
void CPDF_ClipPath::Transform(const CFX_Matrix& matrix) {
PathData* pData = m_Ref.GetPrivateCopy();
for (auto& obj : pData->m_PathAndTypeList)
- obj.first.Transform(&matrix);
+ obj.first.Transform(matrix);
+
for (auto& text : pData->m_TextList) {
if (text)
text->Transform(matrix);
diff --git a/core/fpdfapi/page/cpdf_contentparser.cpp b/core/fpdfapi/page/cpdf_contentparser.cpp
index 90d6925..b3b7371 100644
--- a/core/fpdfapi/page/cpdf_contentparser.cpp
+++ b/core/fpdfapi/page/cpdf_contentparser.cpp
@@ -81,9 +81,9 @@
ClipPath.Emplace();
ClipPath.AppendRect(form_bbox.left, form_bbox.bottom, form_bbox.right,
form_bbox.top);
- ClipPath.Transform(&form_matrix);
+ ClipPath.Transform(form_matrix);
if (pParentMatrix)
- ClipPath.Transform(pParentMatrix);
+ ClipPath.Transform(*pParentMatrix);
form_bbox = form_matrix.TransformRect(form_bbox);
if (pParentMatrix)
diff --git a/core/fpdfapi/page/cpdf_path.cpp b/core/fpdfapi/page/cpdf_path.cpp
index b56249c..b23c5dd 100644
--- a/core/fpdfapi/page/cpdf_path.cpp
+++ b/core/fpdfapi/page/cpdf_path.cpp
@@ -37,8 +37,8 @@
return m_Ref.GetObject()->IsRect();
}
-void CPDF_Path::Transform(const CFX_Matrix* pMatrix) {
- m_Ref.GetPrivateCopy()->Transform(pMatrix);
+void CPDF_Path::Transform(const CFX_Matrix& matrix) {
+ m_Ref.GetPrivateCopy()->Transform(matrix);
}
void CPDF_Path::Append(const CPDF_Path& other, const CFX_Matrix* pMatrix) {
diff --git a/core/fpdfapi/page/cpdf_path.h b/core/fpdfapi/page/cpdf_path.h
index 56df5db..3c68856 100644
--- a/core/fpdfapi/page/cpdf_path.h
+++ b/core/fpdfapi/page/cpdf_path.h
@@ -30,7 +30,7 @@
CFX_FloatRect GetBoundingBox(float line_width, float miter_limit) const;
bool IsRect() const;
- void Transform(const CFX_Matrix* pMatrix);
+ void Transform(const CFX_Matrix& matrix);
void Append(const CPDF_Path& other, const CFX_Matrix* pMatrix);
void Append(const CFX_PathData* pData, const CFX_Matrix* pMatrix);
diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.cpp b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
index ebdff44..e703e7b 100644
--- a/core/fpdfapi/page/cpdf_streamcontentparser.cpp
+++ b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
@@ -1481,7 +1481,7 @@
}
if (PathClipType) {
if (!matrix.IsIdentity())
- Path.Transform(&matrix);
+ Path.Transform(matrix);
m_pCurStates->m_ClipPath.AppendPath(Path, PathClipType, true);
}
}
diff --git a/core/fpdfapi/render/cpdf_imagerenderer.cpp b/core/fpdfapi/render/cpdf_imagerenderer.cpp
index 0494791..90e1960 100644
--- a/core/fpdfapi/render/cpdf_imagerenderer.cpp
+++ b/core/fpdfapi/render/cpdf_imagerenderer.cpp
@@ -467,7 +467,7 @@
if (m_pDIBBase->IsOpaqueImage()) {
CFX_PathData path;
path.AppendRect(0, 0, 1, 1);
- path.Transform(&m_ImageMatrix);
+ path.Transform(m_ImageMatrix);
uint32_t fill_color =
ArgbEncode(0xff, m_BitmapAlpha, m_BitmapAlpha, m_BitmapAlpha);
m_pRenderStatus->GetRenderDevice()->DrawPath(&path, nullptr, nullptr,
diff --git a/core/fxge/cfx_pathdata.cpp b/core/fxge/cfx_pathdata.cpp
index ac1ff42..ae7d2d4 100644
--- a/core/fxge/cfx_pathdata.cpp
+++ b/core/fxge/cfx_pathdata.cpp
@@ -291,11 +291,9 @@
return rect;
}
-void CFX_PathData::Transform(const CFX_Matrix* pMatrix) {
- if (!pMatrix)
- return;
+void CFX_PathData::Transform(const CFX_Matrix& matrix) {
for (auto& point : m_Points)
- point.m_Point = pMatrix->Transform(point.m_Point);
+ point.m_Point = matrix.Transform(point.m_Point);
}
bool CFX_PathData::GetZeroAreaPath(const CFX_Matrix* pMatrix,
diff --git a/core/fxge/cfx_pathdata.h b/core/fxge/cfx_pathdata.h
index 9d96407..705447c 100644
--- a/core/fxge/cfx_pathdata.h
+++ b/core/fxge/cfx_pathdata.h
@@ -49,7 +49,7 @@
CFX_FloatRect GetBoundingBox() const;
CFX_FloatRect GetBoundingBox(float line_width, float miter_limit) const;
- void Transform(const CFX_Matrix* pMatrix);
+ void Transform(const CFX_Matrix& matrix);
bool IsRect() const;
bool GetZeroAreaPath(const CFX_Matrix* pMatrix,
bool bAdjust,
diff --git a/core/fxge/cfx_renderdevice.cpp b/core/fxge/cfx_renderdevice.cpp
index e1bea7d..f55ad46 100644
--- a/core/fxge/cfx_renderdevice.cpp
+++ b/core/fxge/cfx_renderdevice.cpp
@@ -1084,7 +1084,7 @@
matrix.Concat(*pText2User);
CFX_PathData TransformedPath(*pPath);
- TransformedPath.Transform(&matrix);
+ TransformedPath.Transform(matrix);
if (fill_color || stroke_color) {
int fill_mode = nFlag;
if (fill_color)
diff --git a/core/fxge/win32/cfx_psrenderer.cpp b/core/fxge/win32/cfx_psrenderer.cpp
index 830a868..c8bbfeb 100644
--- a/core/fxge/win32/cfx_psrenderer.cpp
+++ b/core/fxge/win32/cfx_psrenderer.cpp
@@ -605,7 +605,7 @@
CFX_PathData TransformedPath(*pPathData);
if (charpos.m_bGlyphAdjust)
- TransformedPath.Transform(&matrix);
+ TransformedPath.Transform(matrix);
std::ostringstream buf;
buf << "/X" << *ps_fontnum << " Ff/CharProcs get begin/" << glyphindex
diff --git a/xfa/fxgraphics/cxfa_gepath.cpp b/xfa/fxgraphics/cxfa_gepath.cpp
index a1fee15..6597c80 100644
--- a/xfa/fxgraphics/cxfa_gepath.cpp
+++ b/xfa/fxgraphics/cxfa_gepath.cpp
@@ -146,5 +146,5 @@
}
void CXFA_GEPath::TransformBy(const CFX_Matrix& mt) {
- data_.Transform(&mt);
+ data_.Transform(mt);
}