Clean up star drawing code.

- Use float version of sin() and cos(), instead of casting doubles to
  floats.
- Make small improvements to the for-loops.
- Fix typos for the word "angle".
- Synchronize the non-XFA version with the XFA version.

Change-Id: Ic28ac21ee9c90aabc7e2f058e09caf2fe2b0ebcf
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/70930
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/fpdfsdk/cpdfsdk_appstream.cpp b/fpdfsdk/cpdfsdk_appstream.cpp
index 66e8768..7be7c09 100644
--- a/fpdfsdk/cpdfsdk_appstream.cpp
+++ b/fpdfsdk/cpdfsdk_appstream.cpp
@@ -274,27 +274,25 @@
 ByteString GetAP_Star(const CFX_FloatRect& crBBox) {
   std::ostringstream csAP;
 
-  float fRadius = (crBBox.top - crBBox.bottom) / (1 + (float)cos(FX_PI / 5.0f));
+  float fRadius = (crBBox.top - crBBox.bottom) / (1 + cosf(FX_PI / 5.0f));
   CFX_PointF ptCenter = CFX_PointF((crBBox.left + crBBox.right) / 2.0f,
                                    (crBBox.top + crBBox.bottom) / 2.0f);
 
-  float px[5];
-  float py[5];
-  float fAngel = FX_PI / 10.0f;
-  for (int32_t i = 0; i < 5; i++) {
-    px[i] = ptCenter.x + fRadius * (float)cos(fAngel);
-    py[i] = ptCenter.y + fRadius * (float)sin(fAngel);
-    fAngel += FX_PI * 2 / 5.0f;
+  CFX_PointF points[5];
+  float fAngle = FX_PI / 10.0f;
+  for (auto& point : points) {
+    point =
+        ptCenter + CFX_PointF(fRadius * cosf(fAngle), fRadius * sinf(fAngle));
+    fAngle += FX_PI * 2 / 5.0f;
   }
 
-  csAP << px[0] << " " << py[0] << " " << kMoveToOperator << "\n";
+  csAP << points[0].x << " " << points[0].y << " " << kMoveToOperator << "\n";
 
-  int32_t nNext = 0;
-  for (int32_t j = 0; j < 5; j++) {
-    nNext += 2;
-    if (nNext >= 5)
-      nNext -= 5;
-    csAP << px[nNext] << " " << py[nNext] << " " << kLineToOperator << "\n";
+  int next = 0;
+  for (size_t i = 0; i < pdfium::size(points); ++i) {
+    next = (next + 2) % pdfium::size(points);
+    csAP << points[next].x << " " << points[next].y << " " << kLineToOperator
+         << "\n";
   }
 
   return ByteString(csAP);
diff --git a/xfa/fwl/theme/cfwl_checkboxtp.cpp b/xfa/fwl/theme/cfwl_checkboxtp.cpp
index 953523d..516ff97 100644
--- a/xfa/fwl/theme/cfwl_checkboxtp.cpp
+++ b/xfa/fwl/theme/cfwl_checkboxtp.cpp
@@ -8,6 +8,7 @@
 
 #include "core/fxge/cfx_pathdata.h"
 #include "core/fxge/render_defines.h"
+#include "third_party/base/stl_util.h"
 #include "xfa/fde/cfde_textout.h"
 #include "xfa/fwl/cfwl_checkbox.h"
 #include "xfa/fwl/cfwl_themebackground.h"
@@ -128,28 +129,23 @@
                                    const CFX_Matrix& matrix) {
   CXFA_GEPath path;
   float fBottom = rtSign.bottom();
-  float fRadius =
-      (rtSign.top - fBottom) / (1 + static_cast<float>(cos(FX_PI / 5.0f)));
+  float fRadius = (rtSign.top - fBottom) / (1 + cosf(FX_PI / 5.0f));
   CFX_PointF ptCenter((rtSign.left + rtSign.right()) / 2.0f,
                       (rtSign.top + fBottom) / 2.0f);
 
   CFX_PointF points[5];
-  float fAngel = FX_PI / 10.0f;
-  for (int32_t i = 0; i < 5; i++) {
-    points[i] =
-        ptCenter + CFX_PointF(fRadius * static_cast<float>(cos(fAngel)),
-                              fRadius * static_cast<float>(sin(fAngel)));
-    fAngel += FX_PI * 2 / 5.0f;
+  float fAngle = FX_PI / 10.0f;
+  for (auto& point : points) {
+    point =
+        ptCenter + CFX_PointF(fRadius * cosf(fAngle), fRadius * sinf(fAngle));
+    fAngle += FX_PI * 2 / 5.0f;
   }
 
   path.MoveTo(points[0]);
-  int32_t nNext = 0;
-  for (int32_t j = 0; j < 5; j++) {
-    nNext += 2;
-    if (nNext >= 5)
-      nNext -= 5;
-
-    path.LineTo(points[nNext]);
+  int next = 0;
+  for (size_t i = 0; i < pdfium::size(points); ++i) {
+    next = (next + 2) % pdfium::size(points);
+    path.LineTo(points[next]);
   }
   pGraphics->SaveGraphState();
   pGraphics->SetFillColor(CXFA_GEColor(argbFill));