Use Chromium-style names in GetCharPosList().

Also convert input params to spans, which is a simple 2 line change, and
fix lint errors in the header.

Change-Id: I85b0a8cabefa083543fcb74d0440ca1cff9698f7
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/68892
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/render/charposlist.cpp b/core/fpdfapi/render/charposlist.cpp
index a8fbf68..8392ab2 100644
--- a/core/fpdfapi/render/charposlist.cpp
+++ b/core/fpdfapi/render/charposlist.cpp
@@ -12,46 +12,47 @@
 #include "core/fxge/cfx_substfont.h"
 #include "core/fxge/text_char_pos.h"
 
-std::vector<TextCharPos> GetCharPosList(const std::vector<uint32_t>& charCodes,
-                                        const std::vector<float>& charPos,
-                                        CPDF_Font* pFont,
+std::vector<TextCharPos> GetCharPosList(pdfium::span<const uint32_t> char_codes,
+                                        pdfium::span<const float> char_pos,
+                                        CPDF_Font* font,
                                         float font_size) {
   std::vector<TextCharPos> results;
-  results.reserve(charCodes.size());
+  results.reserve(char_codes.size());
 
-  CPDF_CIDFont* pCIDFont = pFont->AsCIDFont();
-  bool bVertWriting = pCIDFont && pCIDFont->IsVertWriting();
-  bool bToUnicode = !!pFont->GetFontDict()->GetStreamFor("ToUnicode");
-  for (size_t i = 0; i < charCodes.size(); ++i) {
-    uint32_t CharCode = charCodes[i];
-    if (CharCode == static_cast<uint32_t>(-1))
+  CPDF_CIDFont* cid_font = font->AsCIDFont();
+  bool is_vertical_writing = cid_font && cid_font->IsVertWriting();
+  bool has_to_unicode = !!font->GetFontDict()->GetStreamFor("ToUnicode");
+  for (size_t i = 0; i < char_codes.size(); ++i) {
+    uint32_t char_code = char_codes[i];
+    if (char_code == static_cast<uint32_t>(-1))
       continue;
 
-    bool bVert = false;
+    bool is_vertical_glyph = false;
     results.emplace_back();
-    TextCharPos& charpos = results.back();
-    if (pCIDFont)
-      charpos.m_bFontStyle = true;
-    WideString unicode = pFont->UnicodeFromCharCode(CharCode);
-    charpos.m_Unicode = !unicode.IsEmpty() ? unicode[0] : CharCode;
-    charpos.m_GlyphIndex = pFont->GlyphFromCharCode(CharCode, &bVert);
-    uint32_t GlyphID = charpos.m_GlyphIndex;
+    TextCharPos& text_char_pos = results.back();
+    if (cid_font)
+      text_char_pos.m_bFontStyle = true;
+    WideString unicode = font->UnicodeFromCharCode(char_code);
+    text_char_pos.m_Unicode = !unicode.IsEmpty() ? unicode[0] : char_code;
+    text_char_pos.m_GlyphIndex =
+        font->GlyphFromCharCode(char_code, &is_vertical_glyph);
+    uint32_t glyph_id = text_char_pos.m_GlyphIndex;
 #if defined(OS_MACOSX)
-    charpos.m_ExtGID = pFont->GlyphFromCharCodeExt(CharCode);
-    GlyphID = charpos.m_ExtGID != static_cast<uint32_t>(-1)
-                  ? charpos.m_ExtGID
-                  : charpos.m_GlyphIndex;
+    text_char_pos.m_ExtGID = font->GlyphFromCharCodeExt(char_code);
+    glyph_id = text_char_pos.m_ExtGID != static_cast<uint32_t>(-1)
+                   ? text_char_pos.m_ExtGID
+                   : text_char_pos.m_GlyphIndex;
 #endif
-    bool bIsInvalidGlyph = GlyphID == static_cast<uint32_t>(-1);
-    bool bIsTrueTypeZeroGlyph = GlyphID == 0 && pFont->IsTrueTypeFont();
-    bool bUseFallbackFont = false;
-    if (bIsInvalidGlyph || bIsTrueTypeZeroGlyph) {
-      charpos.m_FallbackFontPosition =
-          pFont->FallbackFontFromCharcode(CharCode);
-      charpos.m_GlyphIndex = pFont->FallbackGlyphFromCharcode(
-          charpos.m_FallbackFontPosition, CharCode);
-      if (bIsTrueTypeZeroGlyph &&
-          charpos.m_GlyphIndex == static_cast<uint32_t>(-1)) {
+    bool is_invalid_glyph = glyph_id == static_cast<uint32_t>(-1);
+    bool is_true_type_zero_glyph = glyph_id == 0 && font->IsTrueTypeFont();
+    bool use_fallback_font = false;
+    if (is_invalid_glyph || is_true_type_zero_glyph) {
+      text_char_pos.m_FallbackFontPosition =
+          font->FallbackFontFromCharcode(char_code);
+      text_char_pos.m_GlyphIndex = font->FallbackGlyphFromCharcode(
+          text_char_pos.m_FallbackFontPosition, char_code);
+      if (is_true_type_zero_glyph &&
+          text_char_pos.m_GlyphIndex == static_cast<uint32_t>(-1)) {
         // For a TrueType font character, when finding the glyph from the
         // fallback font fails, switch back to using the original font.
 
@@ -62,79 +63,83 @@
         // https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/5411.ToUnicode.pdf
         // and
         // https://www.freetype.org/freetype2/docs/tutorial/step1.html#section-6)
-        if (bToUnicode)
-          charpos.m_GlyphIndex = 0;
+        if (has_to_unicode)
+          text_char_pos.m_GlyphIndex = 0;
       } else {
-        bUseFallbackFont = true;
+        use_fallback_font = true;
       }
     }
-    CFX_Font* pCurrentFont;
-    if (bUseFallbackFont) {
-      pCurrentFont = pFont->GetFontFallback(charpos.m_FallbackFontPosition);
+    CFX_Font* current_font;
+    if (use_fallback_font) {
+      current_font =
+          font->GetFontFallback(text_char_pos.m_FallbackFontPosition);
 #if defined(OS_MACOSX)
-      charpos.m_ExtGID = charpos.m_GlyphIndex;
+      text_char_pos.m_ExtGID = text_char_pos.m_GlyphIndex;
 #endif
     } else {
-      pCurrentFont = pFont->GetFont();
-      charpos.m_FallbackFontPosition = -1;
+      current_font = font->GetFont();
+      text_char_pos.m_FallbackFontPosition = -1;
     }
 
-    if (!pFont->IsEmbedded() && !pFont->IsCIDFont())
-      charpos.m_FontCharWidth = pFont->GetCharWidthF(CharCode);
+    if (!font->IsEmbedded() && !font->IsCIDFont())
+      text_char_pos.m_FontCharWidth = font->GetCharWidthF(char_code);
     else
-      charpos.m_FontCharWidth = 0;
+      text_char_pos.m_FontCharWidth = 0;
 
-    charpos.m_Origin = CFX_PointF(i > 0 ? charPos[i - 1] : 0, 0);
-    charpos.m_bGlyphAdjust = false;
+    text_char_pos.m_Origin = CFX_PointF(i > 0 ? char_pos[i - 1] : 0, 0);
+    text_char_pos.m_bGlyphAdjust = false;
 
-    float scalingFactor = 1.0f;
-    if (!pFont->IsEmbedded() && pFont->HasFontWidths() && !bVertWriting &&
-        !pCurrentFont->GetSubstFont()->m_bFlagMM) {
-      uint32_t pdfGlyphWidth = pFont->GetCharWidthF(CharCode);
-      uint32_t ftGlyphWidth =
-          pCurrentFont ? pCurrentFont->GetGlyphWidth(charpos.m_GlyphIndex) : 0;
-      if (ftGlyphWidth && pdfGlyphWidth > ftGlyphWidth + 1) {
+    float scaling_factor = 1.0f;
+    if (!font->IsEmbedded() && font->HasFontWidths() && !is_vertical_writing &&
+        !current_font->GetSubstFont()->m_bFlagMM) {
+      uint32_t pdf_glyph_width = font->GetCharWidthF(char_code);
+      uint32_t font_glyph_width =
+          current_font ? current_font->GetGlyphWidth(text_char_pos.m_GlyphIndex)
+                       : 0;
+      if (font_glyph_width && pdf_glyph_width > font_glyph_width + 1) {
         // Move the initial x position by half of the excess (transformed to
         // text space coordinates).
-        charpos.m_Origin.x +=
-            (pdfGlyphWidth - ftGlyphWidth) * font_size / 2000.0f;
-      } else if (pdfGlyphWidth && ftGlyphWidth &&
-                 pdfGlyphWidth < ftGlyphWidth) {
-        scalingFactor = static_cast<float>(pdfGlyphWidth) / ftGlyphWidth;
-        charpos.m_AdjustMatrix[0] = scalingFactor;
-        charpos.m_AdjustMatrix[1] = 0.0f;
-        charpos.m_AdjustMatrix[2] = 0.0f;
-        charpos.m_AdjustMatrix[3] = 1.0f;
-        charpos.m_bGlyphAdjust = true;
+        text_char_pos.m_Origin.x +=
+            (pdf_glyph_width - font_glyph_width) * font_size / 2000.0f;
+      } else if (pdf_glyph_width && font_glyph_width &&
+                 pdf_glyph_width < font_glyph_width) {
+        scaling_factor = static_cast<float>(pdf_glyph_width) / font_glyph_width;
+        text_char_pos.m_AdjustMatrix[0] = scaling_factor;
+        text_char_pos.m_AdjustMatrix[1] = 0.0f;
+        text_char_pos.m_AdjustMatrix[2] = 0.0f;
+        text_char_pos.m_AdjustMatrix[3] = 1.0f;
+        text_char_pos.m_bGlyphAdjust = true;
       }
     }
-    if (!pCIDFont)
+    if (!cid_font)
       continue;
 
-    uint16_t CID = pCIDFont->CIDFromCharCode(CharCode);
-    if (bVertWriting) {
-      charpos.m_Origin = CFX_PointF(0, charpos.m_Origin.x);
+    uint16_t cid = cid_font->CIDFromCharCode(char_code);
+    if (is_vertical_writing) {
+      text_char_pos.m_Origin = CFX_PointF(0, text_char_pos.m_Origin.x);
 
       short vx;
       short vy;
-      pCIDFont->GetVertOrigin(CID, vx, vy);
-      charpos.m_Origin.x -= font_size * vx / 1000;
-      charpos.m_Origin.y -= font_size * vy / 1000;
+      cid_font->GetVertOrigin(cid, vx, vy);
+      text_char_pos.m_Origin.x -= font_size * vx / 1000;
+      text_char_pos.m_Origin.y -= font_size * vy / 1000;
     }
 
-    const uint8_t* pTransform = pCIDFont->GetCIDTransform(CID);
-    if (pTransform && !bVert) {
-      charpos.m_AdjustMatrix[0] =
-          pCIDFont->CIDTransformToFloat(pTransform[0]) * scalingFactor;
-      charpos.m_AdjustMatrix[1] =
-          pCIDFont->CIDTransformToFloat(pTransform[1]) * scalingFactor;
-      charpos.m_AdjustMatrix[2] = pCIDFont->CIDTransformToFloat(pTransform[2]);
-      charpos.m_AdjustMatrix[3] = pCIDFont->CIDTransformToFloat(pTransform[3]);
-      charpos.m_Origin.x +=
-          pCIDFont->CIDTransformToFloat(pTransform[4]) * font_size;
-      charpos.m_Origin.y +=
-          pCIDFont->CIDTransformToFloat(pTransform[5]) * font_size;
-      charpos.m_bGlyphAdjust = true;
+    const uint8_t* cid_transform = cid_font->GetCIDTransform(cid);
+    if (cid_transform && !is_vertical_glyph) {
+      text_char_pos.m_AdjustMatrix[0] =
+          cid_font->CIDTransformToFloat(cid_transform[0]) * scaling_factor;
+      text_char_pos.m_AdjustMatrix[1] =
+          cid_font->CIDTransformToFloat(cid_transform[1]) * scaling_factor;
+      text_char_pos.m_AdjustMatrix[2] =
+          cid_font->CIDTransformToFloat(cid_transform[2]);
+      text_char_pos.m_AdjustMatrix[3] =
+          cid_font->CIDTransformToFloat(cid_transform[3]);
+      text_char_pos.m_Origin.x +=
+          cid_font->CIDTransformToFloat(cid_transform[4]) * font_size;
+      text_char_pos.m_Origin.y +=
+          cid_font->CIDTransformToFloat(cid_transform[5]) * font_size;
+      text_char_pos.m_bGlyphAdjust = true;
     }
   }
 
diff --git a/core/fpdfapi/render/charposlist.h b/core/fpdfapi/render/charposlist.h
index f759232..f964ea7 100644
--- a/core/fpdfapi/render/charposlist.h
+++ b/core/fpdfapi/render/charposlist.h
@@ -4,19 +4,20 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#ifndef CORE_FPDFAPI_RENDER_CPDF_CHARPOSLIST_H_
-#define CORE_FPDFAPI_RENDER_CPDF_CHARPOSLIST_H_
+#ifndef CORE_FPDFAPI_RENDER_CHARPOSLIST_H_
+#define CORE_FPDFAPI_RENDER_CHARPOSLIST_H_
 
 #include <vector>
 
 #include "core/fxcrt/fx_system.h"
+#include "third_party/base/span.h"
 
 class CPDF_Font;
 class TextCharPos;
 
-std::vector<TextCharPos> GetCharPosList(const std::vector<uint32_t>& charCodes,
-                                        const std::vector<float>& charPos,
-                                        CPDF_Font* pFont,
+std::vector<TextCharPos> GetCharPosList(pdfium::span<const uint32_t> char_codes,
+                                        pdfium::span<const float> char_pos,
+                                        CPDF_Font* font,
                                         float font_size);
 
-#endif  // CORE_FPDFAPI_RENDER_CPDF_CHARPOSLIST_H_
+#endif  // CORE_FPDFAPI_RENDER_CHARPOSLIST_H_