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); }