summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorLei Zhang <thestig@chromium.org>2018-10-24 18:46:26 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-10-24 18:46:26 +0000
commite835574db56d3a59f444fa98318458d83ffe15a4 (patch)
tree35bf8f662045c75a645fbebaeef7e2cca3b440bb /core
parent877e1e212794c6a43f6661198ac1b369fab975be (diff)
downloadpdfium-e835574db56d3a59f444fa98318458d83ffe15a4.tar.xz
Make CPDF_PathObject::m_Path private.
Change-Id: I5c42af8e9e2d6a60648d291153326aef04e4c49e Reviewed-on: https://pdfium-review.googlesource.com/c/44513 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'core')
-rw-r--r--core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp4
-rw-r--r--core/fpdfapi/edit/cpdf_pagecontentgenerator_unittest.cpp42
-rw-r--r--core/fpdfapi/page/cpdf_pathobject.h12
-rw-r--r--core/fpdfapi/page/cpdf_streamcontentparser.cpp4
-rw-r--r--core/fpdfapi/render/cpdf_renderstatus.cpp12
5 files changed, 38 insertions, 36 deletions
diff --git a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
index cfc8c5159a..4ae5631534 100644
--- a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
+++ b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
@@ -354,8 +354,8 @@ void CPDF_PageContentGenerator::ProcessPath(std::ostringstream* buf,
*buf << pPathObj->matrix() << " cm ";
- auto& pPoints = pPathObj->m_Path.GetPoints();
- if (pPathObj->m_Path.IsRect()) {
+ const auto& pPoints = pPathObj->path().GetPoints();
+ if (pPathObj->path().IsRect()) {
CFX_PointF diff = pPoints[2].m_Point - pPoints[0].m_Point;
*buf << pPoints[0].m_Point.x << " " << pPoints[0].m_Point.y << " " << diff.x
<< " " << diff.y << " re";
diff --git a/core/fpdfapi/edit/cpdf_pagecontentgenerator_unittest.cpp b/core/fpdfapi/edit/cpdf_pagecontentgenerator_unittest.cpp
index f4555287d7..b5fbec80ec 100644
--- a/core/fpdfapi/edit/cpdf_pagecontentgenerator_unittest.cpp
+++ b/core/fpdfapi/edit/cpdf_pagecontentgenerator_unittest.cpp
@@ -51,9 +51,9 @@ class CPDF_PageContentGeneratorTest : public testing::Test {
TEST_F(CPDF_PageContentGeneratorTest, ProcessRect) {
auto pPathObj = pdfium::MakeUnique<CPDF_PathObject>();
- pPathObj->m_Path.AppendRect(10, 5, 13, 30);
- pPathObj->set_filltype(FXFILL_ALTERNATE);
pPathObj->set_stroke(true);
+ pPathObj->set_filltype(FXFILL_ALTERNATE);
+ pPathObj->path().AppendRect(10, 5, 13, 30);
auto pTestPage = pdfium::MakeRetain<CPDF_Page>(nullptr, nullptr, false);
CPDF_PageContentGenerator generator(pTestPage.Get());
@@ -62,11 +62,11 @@ TEST_F(CPDF_PageContentGeneratorTest, ProcessRect) {
EXPECT_EQ("q 1 0 0 1 0 0 cm 10 5 3 25 re B* Q\n", ByteString(buf));
pPathObj = pdfium::MakeUnique<CPDF_PathObject>();
- pPathObj->m_Path.AppendPoint(CFX_PointF(0, 0), FXPT_TYPE::MoveTo, false);
- pPathObj->m_Path.AppendPoint(CFX_PointF(5.2f, 0), FXPT_TYPE::LineTo, false);
- pPathObj->m_Path.AppendPoint(CFX_PointF(5.2f, 3.78f), FXPT_TYPE::LineTo,
+ pPathObj->path().AppendPoint(CFX_PointF(0, 0), FXPT_TYPE::MoveTo, false);
+ pPathObj->path().AppendPoint(CFX_PointF(5.2f, 0), FXPT_TYPE::LineTo, false);
+ pPathObj->path().AppendPoint(CFX_PointF(5.2f, 3.78f), FXPT_TYPE::LineTo,
false);
- pPathObj->m_Path.AppendPoint(CFX_PointF(0, 3.78f), FXPT_TYPE::LineTo, true);
+ pPathObj->path().AppendPoint(CFX_PointF(0, 3.78f), FXPT_TYPE::LineTo, true);
buf.str("");
TestProcessPath(&generator, &buf, pPathObj.get());
@@ -75,26 +75,26 @@ TEST_F(CPDF_PageContentGeneratorTest, ProcessRect) {
TEST_F(CPDF_PageContentGeneratorTest, ProcessPath) {
auto pPathObj = pdfium::MakeUnique<CPDF_PathObject>();
- pPathObj->m_Path.AppendPoint(CFX_PointF(3.102f, 4.67f), FXPT_TYPE::MoveTo,
+ pPathObj->set_filltype(FXFILL_WINDING);
+ pPathObj->path().AppendPoint(CFX_PointF(3.102f, 4.67f), FXPT_TYPE::MoveTo,
false);
- pPathObj->m_Path.AppendPoint(CFX_PointF(5.45f, 0.29f), FXPT_TYPE::LineTo,
+ pPathObj->path().AppendPoint(CFX_PointF(5.45f, 0.29f), FXPT_TYPE::LineTo,
false);
- pPathObj->m_Path.AppendPoint(CFX_PointF(4.24f, 3.15f), FXPT_TYPE::BezierTo,
+ pPathObj->path().AppendPoint(CFX_PointF(4.24f, 3.15f), FXPT_TYPE::BezierTo,
false);
- pPathObj->m_Path.AppendPoint(CFX_PointF(4.65f, 2.98f), FXPT_TYPE::BezierTo,
+ pPathObj->path().AppendPoint(CFX_PointF(4.65f, 2.98f), FXPT_TYPE::BezierTo,
false);
- pPathObj->m_Path.AppendPoint(CFX_PointF(3.456f, 0.24f), FXPT_TYPE::BezierTo,
+ pPathObj->path().AppendPoint(CFX_PointF(3.456f, 0.24f), FXPT_TYPE::BezierTo,
false);
- pPathObj->m_Path.AppendPoint(CFX_PointF(10.6f, 11.15f), FXPT_TYPE::LineTo,
+ pPathObj->path().AppendPoint(CFX_PointF(10.6f, 11.15f), FXPT_TYPE::LineTo,
false);
- pPathObj->m_Path.AppendPoint(CFX_PointF(11, 12.5f), FXPT_TYPE::LineTo, false);
- pPathObj->m_Path.AppendPoint(CFX_PointF(11.46f, 12.67f), FXPT_TYPE::BezierTo,
+ pPathObj->path().AppendPoint(CFX_PointF(11, 12.5f), FXPT_TYPE::LineTo, false);
+ pPathObj->path().AppendPoint(CFX_PointF(11.46f, 12.67f), FXPT_TYPE::BezierTo,
false);
- pPathObj->m_Path.AppendPoint(CFX_PointF(11.84f, 12.96f), FXPT_TYPE::BezierTo,
+ pPathObj->path().AppendPoint(CFX_PointF(11.84f, 12.96f), FXPT_TYPE::BezierTo,
false);
- pPathObj->m_Path.AppendPoint(CFX_PointF(12, 13.64f), FXPT_TYPE::BezierTo,
+ pPathObj->path().AppendPoint(CFX_PointF(12, 13.64f), FXPT_TYPE::BezierTo,
true);
- pPathObj->set_filltype(FXFILL_WINDING);
auto pTestPage = pdfium::MakeRetain<CPDF_Page>(nullptr, nullptr, false);
CPDF_PageContentGenerator generator(pTestPage.Get());
@@ -109,11 +109,11 @@ TEST_F(CPDF_PageContentGeneratorTest, ProcessPath) {
TEST_F(CPDF_PageContentGeneratorTest, ProcessGraphics) {
auto pPathObj = pdfium::MakeUnique<CPDF_PathObject>();
- pPathObj->m_Path.AppendPoint(CFX_PointF(1, 2), FXPT_TYPE::MoveTo, false);
- pPathObj->m_Path.AppendPoint(CFX_PointF(3, 4), FXPT_TYPE::LineTo, false);
- pPathObj->m_Path.AppendPoint(CFX_PointF(5, 6), FXPT_TYPE::LineTo, true);
- pPathObj->set_filltype(FXFILL_WINDING);
pPathObj->set_stroke(true);
+ pPathObj->set_filltype(FXFILL_WINDING);
+ pPathObj->path().AppendPoint(CFX_PointF(1, 2), FXPT_TYPE::MoveTo, false);
+ pPathObj->path().AppendPoint(CFX_PointF(3, 4), FXPT_TYPE::LineTo, false);
+ pPathObj->path().AppendPoint(CFX_PointF(5, 6), FXPT_TYPE::LineTo, true);
static const std::vector<float> rgb = {0.5f, 0.7f, 0.35f};
CPDF_ColorSpace* pCS = CPDF_ColorSpace::GetStockCS(PDFCS_DEVICERGB);
diff --git a/core/fpdfapi/page/cpdf_pathobject.h b/core/fpdfapi/page/cpdf_pathobject.h
index e6e0d19de8..c2166b3277 100644
--- a/core/fpdfapi/page/cpdf_pathobject.h
+++ b/core/fpdfapi/page/cpdf_pathobject.h
@@ -27,20 +27,22 @@ class CPDF_PathObject final : public CPDF_PageObject {
void CalcBoundingBox();
+ bool stroke() const { return m_bStroke; }
+ void set_stroke(bool stroke) { m_bStroke = stroke; }
+
int filltype() const { return m_FillType; }
void set_filltype(int filltype) { m_FillType = filltype; }
- bool stroke() const { return m_bStroke; }
- void set_stroke(bool stroke) { m_bStroke = stroke; }
+ CPDF_Path& path() { return m_Path; }
+ const CPDF_Path& path() const { return m_Path; }
const CFX_Matrix& matrix() const { return m_Matrix; }
void set_matrix(const CFX_Matrix& matrix) { m_Matrix = matrix; }
- CPDF_Path m_Path;
-
private:
- int m_FillType = 0;
bool m_bStroke = false;
+ int m_FillType = 0;
+ CPDF_Path m_Path;
CFX_Matrix m_Matrix;
};
diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.cpp b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
index 245a2852bc..5a9d6b6ea2 100644
--- a/core/fpdfapi/page/cpdf_streamcontentparser.cpp
+++ b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
@@ -1475,9 +1475,9 @@ void CPDF_StreamContentParser::AddPathObject(int FillType, bool bStroke) {
if (bStroke || FillType) {
auto pPathObj =
pdfium::MakeUnique<CPDF_PathObject>(GetCurrentStreamIndex());
- pPathObj->m_Path = Path;
- pPathObj->set_filltype(FillType);
pPathObj->set_stroke(bStroke);
+ pPathObj->set_filltype(FillType);
+ pPathObj->path() = Path;
pPathObj->set_matrix(matrix);
SetGraphicStates(pPathObj.get(), true, false, true);
pPathObj->CalcBoundingBox();
diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp
index 7bd2d7cd22..26ce0a6d3c 100644
--- a/core/fpdfapi/render/cpdf_renderstatus.cpp
+++ b/core/fpdfapi/render/cpdf_renderstatus.cpp
@@ -1276,7 +1276,7 @@ bool CPDF_RenderStatus::ProcessPath(CPDF_PathObject* pPathObj,
if (m_Options.HasFlag(RENDER_THINLINE))
graphState.SetLineWidth(0);
return m_pDevice->DrawPathWithBlend(
- pPathObj->m_Path.GetObject(), &path_matrix, graphState.GetObject(),
+ pPathObj->path().GetObject(), &path_matrix, graphState.GetObject(),
fill_argb, stroke_argb, FillType, m_curBlend);
}
@@ -1421,14 +1421,14 @@ bool CPDF_RenderStatus::SelectClipPath(const CPDF_PathObject* pPathObj,
CFX_GraphState graphState = pPathObj->m_GraphState;
if (m_Options.HasFlag(RENDER_THINLINE))
graphState.SetLineWidth(0);
- return m_pDevice->SetClip_PathStroke(pPathObj->m_Path.GetObject(),
+ return m_pDevice->SetClip_PathStroke(pPathObj->path().GetObject(),
&path_matrix, graphState.GetObject());
}
int fill_mode = pPathObj->filltype();
if (m_Options.HasFlag(RENDER_NOPATHSMOOTH)) {
fill_mode |= FXFILL_NOPATHSMOOTH;
}
- return m_pDevice->SetClip_PathFill(pPathObj->m_Path.GetObject(), &path_matrix,
+ return m_pDevice->SetClip_PathFill(pPathObj->path().GetObject(), &path_matrix,
fill_mode);
}
@@ -1973,7 +1973,7 @@ void CPDF_RenderStatus::DrawTextPathWithPattern(const CPDF_TextObject* textobj,
path.m_ClipPath.AppendTexts(&pCopy);
path.m_ColorState = textobj->m_ColorState;
path.m_GeneralState = textobj->m_GeneralState;
- path.m_Path.AppendRect(textobj->GetRect().left, textobj->GetRect().bottom,
+ path.path().AppendRect(textobj->GetRect().left, textobj->GetRect().bottom,
textobj->GetRect().right, textobj->GetRect().top);
path.SetRect(textobj->GetRect());
@@ -2006,9 +2006,9 @@ void CPDF_RenderStatus::DrawTextPathWithPattern(const CPDF_TextObject* textobj,
}
matrix.Concat(CFX_Matrix(font_size, 0, 0, font_size, charpos.m_Origin.x,
charpos.m_Origin.y));
- path.m_Path.Append(pPath, &matrix);
- path.set_filltype(bFill ? FXFILL_WINDING : 0);
path.set_stroke(bStroke);
+ path.set_filltype(bFill ? FXFILL_WINDING : 0);
+ path.path().Append(pPath, &matrix);
path.set_matrix(*pTextMatrix);
path.CalcBoundingBox();
ProcessPath(&path, mtObj2Device);