Fix UNSAFE_TODO() usage int GetAP_Check()
Convert to std::array<> of rows of points.
-- use better variable naming.
Bug: 42271176
Change-Id: I815169a7c27b6d1ab2a808a99862b55ee0843ece
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/120451
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Thomas Sepez <tsepez@google.com>
diff --git a/fpdfsdk/cpdfsdk_appstream.cpp b/fpdfsdk/cpdfsdk_appstream.cpp
index 40e0402..aaf77de 100644
--- a/fpdfsdk/cpdfsdk_appstream.cpp
+++ b/fpdfsdk/cpdfsdk_appstream.cpp
@@ -187,52 +187,50 @@
const float fWidth = crBBox.Width();
const float fHeight = crBBox.Height();
- CFX_PointF pts[8][3] = {{CFX_PointF(0.28f, 0.52f), CFX_PointF(0.27f, 0.48f),
- CFX_PointF(0.29f, 0.40f)},
- {CFX_PointF(0.30f, 0.33f), CFX_PointF(0.31f, 0.29f),
- CFX_PointF(0.31f, 0.28f)},
- {CFX_PointF(0.39f, 0.28f), CFX_PointF(0.49f, 0.29f),
- CFX_PointF(0.77f, 0.67f)},
- {CFX_PointF(0.76f, 0.68f), CFX_PointF(0.78f, 0.69f),
- CFX_PointF(0.76f, 0.75f)},
- {CFX_PointF(0.76f, 0.75f), CFX_PointF(0.73f, 0.80f),
- CFX_PointF(0.68f, 0.75f)},
- {CFX_PointF(0.68f, 0.74f), CFX_PointF(0.68f, 0.74f),
- CFX_PointF(0.44f, 0.47f)},
- {CFX_PointF(0.43f, 0.47f), CFX_PointF(0.40f, 0.47f),
- CFX_PointF(0.41f, 0.58f)},
- {CFX_PointF(0.40f, 0.60f), CFX_PointF(0.28f, 0.66f),
- CFX_PointF(0.30f, 0.56f)}};
+ using PointRow = std::array<CFX_PointF, 3>;
+ std::array<PointRow, 8> point_table = {{
+ {{CFX_PointF(0.28f, 0.52f), CFX_PointF(0.27f, 0.48f),
+ CFX_PointF(0.29f, 0.40f)}},
+ {{CFX_PointF(0.30f, 0.33f), CFX_PointF(0.31f, 0.29f),
+ CFX_PointF(0.31f, 0.28f)}},
+ {{CFX_PointF(0.39f, 0.28f), CFX_PointF(0.49f, 0.29f),
+ CFX_PointF(0.77f, 0.67f)}},
+ {{CFX_PointF(0.76f, 0.68f), CFX_PointF(0.78f, 0.69f),
+ CFX_PointF(0.76f, 0.75f)}},
+ {{CFX_PointF(0.76f, 0.75f), CFX_PointF(0.73f, 0.80f),
+ CFX_PointF(0.68f, 0.75f)}},
+ {{CFX_PointF(0.68f, 0.74f), CFX_PointF(0.68f, 0.74f),
+ CFX_PointF(0.44f, 0.47f)}},
+ {{CFX_PointF(0.43f, 0.47f), CFX_PointF(0.40f, 0.47f),
+ CFX_PointF(0.41f, 0.58f)}},
+ {{CFX_PointF(0.40f, 0.60f), CFX_PointF(0.28f, 0.66f),
+ CFX_PointF(0.30f, 0.56f)}},
+ }};
- for (size_t i = 0; i < std::size(pts); ++i) {
- for (size_t j = 0; j < std::size(pts[0]); ++j) {
- UNSAFE_TODO({
- pts[i][j].x = pts[i][j].x * fWidth + crBBox.left;
- pts[i][j].y = pts[i][j].y * fHeight + crBBox.bottom;
- });
+ for (PointRow& row : point_table) {
+ for (CFX_PointF& point : row) {
+ point.x = point.x * fWidth + crBBox.left;
+ point.y = point.y * fHeight + crBBox.bottom;
}
}
fxcrt::ostringstream csAP;
- WriteMove(csAP, pts[0][0]);
+ WriteMove(csAP, point_table[0][0]);
- UNSAFE_TODO({
- for (size_t i = 0; i < std::size(pts); ++i) {
- size_t nNext = i < std::size(pts) - 1 ? i + 1 : 0;
- const CFX_PointF& pt_next = pts[nNext][0];
-
- float px1 = pts[i][1].x - pts[i][0].x;
- float py1 = pts[i][1].y - pts[i][0].y;
- float px2 = pts[i][2].x - pt_next.x;
- float py2 = pts[i][2].y - pt_next.y;
-
- WriteBezierCurve(
- csAP,
- {pts[i][0].x + px1 * FXSYS_BEZIER, pts[i][0].y + py1 * FXSYS_BEZIER},
- {pt_next.x + px2 * FXSYS_BEZIER, pt_next.y + py2 * FXSYS_BEZIER},
- pt_next);
- }
- });
+ for (size_t i = 0; i < point_table.size(); ++i) {
+ size_t nNext = i < point_table.size() - 1 ? i + 1 : 0;
+ const CFX_PointF& pt_next = point_table[nNext][0];
+ float px1 = point_table[i][1].x - point_table[i][0].x;
+ float py1 = point_table[i][1].y - point_table[i][0].y;
+ float px2 = point_table[i][2].x - pt_next.x;
+ float py2 = point_table[i][2].y - pt_next.y;
+ WriteBezierCurve(
+ csAP,
+ {point_table[i][0].x + px1 * FXSYS_BEZIER,
+ point_table[i][0].y + py1 * FXSYS_BEZIER},
+ {pt_next.x + px2 * FXSYS_BEZIER, pt_next.y + py2 * FXSYS_BEZIER},
+ pt_next);
+ }
return ByteString(csAP);
}