More CBC_PDF417HighLevelEncoder cleanup.

- Move IsFoo methods into an anonymous namespace.
- Pass in-params by const ref.
- Pass out-params by pointer.

Change-Id: I848f06b84a0dab2a0f38f3a967175fc56a335761
Reviewed-on: https://pdfium-review.googlesource.com/c/45653
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp
index 8a90495..272de3b 100644
--- a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp
+++ b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp
@@ -49,6 +49,30 @@
 int32_t g_mixed[128] = {0};
 int32_t g_punctuation[128] = {0};
 
+bool IsDigit(wchar_t ch) {
+  return ch >= '0' && ch <= '9';
+}
+
+bool IsAlphaUpperOrSpace(wchar_t ch) {
+  return ch == ' ' || (ch >= 'A' && ch <= 'Z');
+}
+
+bool IsAlphaLowerOrSpace(wchar_t ch) {
+  return ch == ' ' || (ch >= 'a' && ch <= 'z');
+}
+
+bool IsMixed(wchar_t ch) {
+  return g_mixed[ch] != -1;
+}
+
+bool IsPunctuation(wchar_t ch) {
+  return g_punctuation[ch] != -1;
+}
+
+bool IsText(wchar_t ch) {
+  return (ch >= 32 && ch <= 126) || ch == '\t' || ch == '\n' || ch == '\r';
+}
+
 }  // namespace
 
 void CBC_PDF417HighLevelEncoder::Initialize() {
@@ -80,12 +104,12 @@
   size_t p = 0;
   int32_t textSubMode = SUBMODE_ALPHA;
   if (compaction == TEXT) {
-    EncodeText(msg, p, len, sb, textSubMode);
+    EncodeText(msg, p, len, textSubMode, &sb);
   } else if (compaction == BYTES) {
-    EncodeBinary(&byteArr, p, byteArr.size(), BYTE_COMPACTION, sb);
+    EncodeBinary(byteArr, p, byteArr.size(), BYTE_COMPACTION, &sb);
   } else if (compaction == NUMERIC) {
     sb += kLatchToNumeric;
-    EncodeNumeric(msg, p, len, sb);
+    EncodeNumeric(msg, p, len, &sb);
   } else {
     int32_t encodingMode = kLatchToText;
     while (p < len) {
@@ -94,7 +118,7 @@
         sb += kLatchToNumeric;
         encodingMode = NUMERIC_COMPACTION;
         textSubMode = SUBMODE_ALPHA;
-        EncodeNumeric(msg, p, n, sb);
+        EncodeNumeric(msg, p, n, &sb);
         p += n;
       } else {
         size_t t = DetermineConsecutiveTextCount(msg, p);
@@ -104,7 +128,7 @@
             encodingMode = TEXT_COMPACTION;
             textSubMode = SUBMODE_ALPHA;
           }
-          textSubMode = EncodeText(msg, p, t, sb, textSubMode);
+          textSubMode = EncodeText(msg, p, t, textSubMode, &sb);
           p += t;
         } else {
           Optional<size_t> b =
@@ -118,9 +142,9 @@
             b_value = 1;
           }
           if (b_value == 1 && encodingMode == TEXT_COMPACTION) {
-            EncodeBinary(&byteArr, p, 1, TEXT_COMPACTION, sb);
+            EncodeBinary(byteArr, p, 1, TEXT_COMPACTION, &sb);
           } else {
-            EncodeBinary(&byteArr, p, b_value, encodingMode, sb);
+            EncodeBinary(byteArr, p, b_value, encodingMode, &sb);
             encodingMode = BYTE_COMPACTION;
             textSubMode = SUBMODE_ALPHA;
           }
@@ -152,11 +176,11 @@
   }
 }
 
-int32_t CBC_PDF417HighLevelEncoder::EncodeText(WideString msg,
+int32_t CBC_PDF417HighLevelEncoder::EncodeText(const WideString& msg,
                                                size_t startpos,
                                                size_t count,
-                                               WideString& sb,
-                                               int32_t initialSubmode) {
+                                               int32_t initialSubmode,
+                                               WideString* sb) {
   WideString tmp;
   tmp.Reserve(count);
   int32_t submode = initialSubmode;
@@ -165,14 +189,14 @@
     wchar_t ch = msg[startpos + idx];
     switch (submode) {
       case SUBMODE_ALPHA:
-        if (IsAlphaUpper(ch)) {
+        if (IsAlphaUpperOrSpace(ch)) {
           if (ch == ' ')
             tmp += 26;
           else
             tmp += ch - 65;
           break;
         }
-        if (IsAlphaLower(ch)) {
+        if (IsAlphaLowerOrSpace(ch)) {
           submode = SUBMODE_LOWER;
           tmp += 27;
           continue;
@@ -186,14 +210,14 @@
         tmp += g_punctuation[ch];
         break;
       case SUBMODE_LOWER:
-        if (IsAlphaLower(ch)) {
+        if (IsAlphaLowerOrSpace(ch)) {
           if (ch == ' ')
             tmp += 26;
           else
             tmp += ch - 97;
           break;
         }
-        if (IsAlphaUpper(ch)) {
+        if (IsAlphaUpperOrSpace(ch)) {
           tmp += 27;
           tmp += ch - 65;
           break;
@@ -212,12 +236,12 @@
           tmp += g_mixed[ch];
           break;
         }
-        if (IsAlphaUpper(ch)) {
+        if (IsAlphaUpperOrSpace(ch)) {
           submode = SUBMODE_ALPHA;
           tmp += 28;
           continue;
         }
-        if (IsAlphaLower(ch)) {
+        if (IsAlphaLowerOrSpace(ch)) {
           submode = SUBMODE_LOWER;
           tmp += 27;
           continue;
@@ -252,55 +276,55 @@
     bool odd = (i % 2) != 0;
     if (odd) {
       h = (h * 30) + tmp[i];
-      sb += h;
+      *sb += h;
     } else {
       h = tmp[i];
     }
   }
   if ((len % 2) != 0)
-    sb += (h * 30) + 29;
+    *sb += (h * 30) + 29;
   return submode;
 }
 
-void CBC_PDF417HighLevelEncoder::EncodeBinary(std::vector<uint8_t>* bytes,
+void CBC_PDF417HighLevelEncoder::EncodeBinary(const std::vector<uint8_t>& bytes,
                                               size_t startpos,
                                               size_t count,
                                               int32_t startmode,
-                                              WideString& sb) {
+                                              WideString* sb) {
   if (count == 1 && startmode == TEXT_COMPACTION)
-    sb += kShiftToByte;
+    *sb += kShiftToByte;
 
   size_t idx = startpos;
   if (count >= 6) {
-    sb += kLatchToByte;
+    *sb += kLatchToByte;
     wchar_t chars[5];
     while ((startpos + count - idx) >= 6) {
       int64_t t = 0;
       for (size_t i = 0; i < 6; i++) {
         t <<= 8;
-        t += (*bytes)[idx + i] & 0xff;
+        t += bytes[idx + i] & 0xff;
       }
       for (size_t i = 0; i < 5; i++) {
         chars[i] = (t % 900);
         t /= 900;
       }
       for (size_t i = 5; i >= 1; i--)
-        sb += (chars[i - 1]);
+        *sb += (chars[i - 1]);
       idx += 6;
     }
   }
   if (idx < startpos + count)
-    sb += kLatchToBytePadded;
+    *sb += kLatchToBytePadded;
   for (size_t i = idx; i < startpos + count; i++) {
-    int32_t ch = (*bytes)[i] & 0xff;
-    sb += ch;
+    int32_t ch = bytes[i] & 0xff;
+    *sb += ch;
   }
 }
 
-void CBC_PDF417HighLevelEncoder::EncodeNumeric(WideString msg,
+void CBC_PDF417HighLevelEncoder::EncodeNumeric(const WideString& msg,
                                                size_t startpos,
                                                size_t count,
-                                               WideString& sb) {
+                                               WideString* sb) {
   size_t idx = 0;
   BigInteger num900 = 900;
   while (idx < count) {
@@ -314,35 +338,11 @@
       bigint = bigint / num900;
     } while (!bigint.isZero());
     for (size_t i = tmp.GetLength(); i >= 1; i--)
-      sb += tmp[i - 1];
+      *sb += tmp[i - 1];
     idx += len;
   }
 }
 
-bool CBC_PDF417HighLevelEncoder::IsDigit(wchar_t ch) {
-  return ch >= '0' && ch <= '9';
-}
-
-bool CBC_PDF417HighLevelEncoder::IsAlphaUpper(wchar_t ch) {
-  return ch == ' ' || (ch >= 'A' && ch <= 'Z');
-}
-
-bool CBC_PDF417HighLevelEncoder::IsAlphaLower(wchar_t ch) {
-  return ch == ' ' || (ch >= 'a' && ch <= 'z');
-}
-
-bool CBC_PDF417HighLevelEncoder::IsMixed(wchar_t ch) {
-  return g_mixed[ch] != -1;
-}
-
-bool CBC_PDF417HighLevelEncoder::IsPunctuation(wchar_t ch) {
-  return g_punctuation[ch] != -1;
-}
-
-bool CBC_PDF417HighLevelEncoder::IsText(wchar_t ch) {
-  return ch == '\t' || ch == '\n' || ch == '\r' || (ch >= 32 && ch <= 126);
-}
-
 size_t CBC_PDF417HighLevelEncoder::DetermineConsecutiveDigitCount(
     WideString msg,
     size_t startpos) {
diff --git a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h
index c5a1512..695afbe 100644
--- a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h
+++ b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h
@@ -27,26 +27,20 @@
   static constexpr int32_t NUMERIC_COMPACTION = 2;
   static constexpr int32_t SUBMODE_PUNCTUATION = 3;
 
-  static int32_t EncodeText(WideString msg,
+  static int32_t EncodeText(const WideString& msg,
                             size_t startpos,
                             size_t count,
-                            WideString& sb,
-                            int32_t initialSubmode);
-  static void EncodeBinary(std::vector<uint8_t>* bytes,
+                            int32_t initialSubmode,
+                            WideString* sb);
+  static void EncodeBinary(const std::vector<uint8_t>& bytes,
                            size_t startpos,
                            size_t count,
                            int32_t startmode,
-                           WideString& sb);
-  static void EncodeNumeric(WideString msg,
+                           WideString* sb);
+  static void EncodeNumeric(const WideString& msg,
                             size_t startpos,
                             size_t count,
-                            WideString& sb);
-  static bool IsDigit(wchar_t ch);
-  static bool IsAlphaUpper(wchar_t ch);
-  static bool IsAlphaLower(wchar_t ch);
-  static bool IsMixed(wchar_t ch);
-  static bool IsPunctuation(wchar_t ch);
-  static bool IsText(wchar_t ch);
+                            WideString* sb);
   static size_t DetermineConsecutiveDigitCount(WideString msg, size_t startpos);
   static size_t DetermineConsecutiveTextCount(WideString msg, size_t startpos);
   static Optional<size_t> DetermineConsecutiveBinaryCount(
diff --git a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder_unittest.cpp b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder_unittest.cpp
index c06aeca..6a0b777 100644
--- a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder_unittest.cpp
+++ b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder_unittest.cpp
@@ -50,7 +50,7 @@
     WideString expected(ptr->expected, ptr->expected_length);
     WideString result;
     CBC_PDF417HighLevelEncoder::EncodeBinary(
-        &input_array, ptr->offset, ptr->count, ptr->startmode, result);
+        input_array, ptr->offset, ptr->count, ptr->startmode, &result);
     EXPECT_EQ(expected, result) << " for case number " << i;
   }
   CBC_PDF417HighLevelEncoder::Finalize();
@@ -113,7 +113,7 @@
     WideString expected(ptr->expected, ptr->expected_length);
     WideString result;
     CBC_PDF417HighLevelEncoder::EncodeNumeric(input, ptr->offset, ptr->count,
-                                              result);
+                                              &result);
     EXPECT_EQ(expected, result) << " for case number " << i;
   }
   CBC_PDF417HighLevelEncoder::Finalize();