Add a WriteMove() helper in cpdfsdk_appstream.cpp.
There are many instances of code that generate move operators in
cpdfsdk_appstream.cpp using operator<<. Add a WriteMove() function to
consolidate all these similar instances.
Change-Id: I53c3ec94312c6042fb16f947b2813d4071edd7f5
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/96274
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Nigi <nigi@chromium.org>
diff --git a/fpdfsdk/cpdfsdk_appstream.cpp b/fpdfsdk/cpdfsdk_appstream.cpp
index 7410933..e34fa80 100644
--- a/fpdfsdk/cpdfsdk_appstream.cpp
+++ b/fpdfsdk/cpdfsdk_appstream.cpp
@@ -109,6 +109,10 @@
~AutoClosedQCommand() override = default;
};
+void WriteMove(fxcrt::ostringstream& stream, const CFX_PointF& point) {
+ stream << point.x << " " << point.y << " " << kMoveToOperator << "\n";
+}
+
ByteString GetStrokeColorAppStream(const CFX_Color& color) {
fxcrt::ostringstream sColorStream;
switch (color.nColorType) {
@@ -180,7 +184,7 @@
}
fxcrt::ostringstream csAP;
- csAP << pts[0][0].x << " " << pts[0][0].y << " " << kMoveToOperator << "\n";
+ WriteMove(csAP, pts[0][0]);
for (size_t i = 0; i < std::size(pts); ++i) {
size_t nNext = i < std::size(pts) - 1 ? i + 1 : 0;
@@ -211,7 +215,7 @@
CFX_PointF pt3(crBBox.right, crBBox.bottom + fHeight / 2);
CFX_PointF pt4(crBBox.left + fWidth / 2, crBBox.bottom);
- csAP << pt1.x << " " << pt1.y << " " << kMoveToOperator << "\n";
+ WriteMove(csAP, pt1);
float px = pt2.x - pt1.x;
float py = pt2.y - pt1.y;
@@ -247,10 +251,10 @@
ByteString GetAP_Cross(const CFX_FloatRect& crBBox) {
fxcrt::ostringstream csAP;
- csAP << crBBox.left << " " << crBBox.top << " " << kMoveToOperator << "\n";
+ WriteMove(csAP, {crBBox.left, crBBox.top});
csAP << crBBox.right << " " << crBBox.bottom << " " << kLineToOperator
<< "\n";
- csAP << crBBox.left << " " << crBBox.bottom << " " << kMoveToOperator << "\n";
+ WriteMove(csAP, {crBBox.left, crBBox.bottom});
csAP << crBBox.right << " " << crBBox.top << " " << kLineToOperator << "\n";
return ByteString(csAP);
@@ -306,7 +310,7 @@
fAngle += FXSYS_PI * 2 / 5.0f;
}
- csAP << points[0].x << " " << points[0].y << " " << kMoveToOperator << "\n";
+ WriteMove(csAP, points[0]);
int next = 0;
for (size_t i = 0; i < std::size(points); ++i) {
@@ -335,7 +339,7 @@
<< cos(fRotate) << " " << crBBox.left + fWidth / 2 << " "
<< crBBox.bottom + fHeight / 2 << " " << kConcatMatrixOperator << "\n";
- csAP << pt1.x << " " << pt1.y << " " << kMoveToOperator << "\n";
+ WriteMove(csAP, pt1);
px = pt2.x - pt1.x;
py = pt2.y - pt1.y;
@@ -989,8 +993,7 @@
sColor = GetFillColorAppStream(crLeftTop);
if (sColor.GetLength() > 0) {
sAppStream << sColor;
- sAppStream << fLeft + fHalfWidth << " " << fBottom + fHalfWidth << " "
- << kMoveToOperator << "\n";
+ WriteMove(sAppStream, {fLeft + fHalfWidth, fBottom + fHalfWidth});
sAppStream << fLeft + fHalfWidth << " " << fTop - fHalfWidth << " "
<< kLineToOperator << "\n";
sAppStream << fRight - fHalfWidth << " " << fTop - fHalfWidth << " "
@@ -1006,8 +1009,7 @@
sColor = GetFillColorAppStream(crRightBottom);
if (sColor.GetLength() > 0) {
sAppStream << sColor;
- sAppStream << fRight - fHalfWidth << " " << fTop - fHalfWidth << " "
- << kMoveToOperator << "\n";
+ WriteMove(sAppStream, {fRight - fHalfWidth, fTop - fHalfWidth});
sAppStream << fRight - fHalfWidth << " " << fBottom + fHalfWidth
<< " " << kLineToOperator << "\n";
sAppStream << fLeft + fHalfWidth << " " << fBottom + fHalfWidth << " "
@@ -1038,8 +1040,7 @@
if (sColor.GetLength() > 0) {
sAppStream << sColor;
sAppStream << fWidth << " " << kSetLineWidthOperator << "\n";
- sAppStream << fLeft << " " << fBottom + fWidth / 2 << " "
- << kMoveToOperator << "\n";
+ WriteMove(sAppStream, {fLeft, fBottom + fWidth / 2});
sAppStream << fRight << " " << fBottom + fWidth / 2 << " "
<< kLineToOperator << " " << kStrokeOperator << "\n";
}
@@ -1787,9 +1788,8 @@
const float width = rcClient.right - rcClient.left;
for (int32_t i = 1; i < nMaxLen; ++i) {
const float left = rcClient.left + (width / nMaxLen) * i;
- sLines << left << " " << rcClient.bottom << " " << kMoveToOperator
- << "\n"
- << left << " " << rcClient.top << " " << kLineToOperator
+ WriteMove(sLines, {left, rcClient.bottom});
+ sLines << left << " " << rcClient.top << " " << kLineToOperator
<< " " << kStrokeOperator << "\n";
}
}
@@ -1810,9 +1810,8 @@
const float width = rcClient.right - rcClient.left;
for (int32_t i = 1; i < nMaxLen; ++i) {
const float left = rcClient.left + (width / nMaxLen) * i;
- sLines << left << " " << rcClient.bottom << " " << kMoveToOperator
- << "\n"
- << left << " " << rcClient.top << " " << kLineToOperator
+ WriteMove(sLines, {left, rcClient.bottom});
+ sLines << left << " " << rcClient.top << " " << kLineToOperator
<< " " << kStrokeOperator << "\n";
}
}