Remove startPos argument from  EncodeToEdifactCodewords()

It is always passed as 0. Then convert to size_t since possibility
of underflow is now longer possible.

Change-Id: Ic9980b4bae65e4c98b131aac505dd583792f2b07
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/90930
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/fxbarcode/datamatrix/BC_EdifactEncoder.cpp b/fxbarcode/datamatrix/BC_EdifactEncoder.cpp
index fc62210..7c0e931 100644
--- a/fxbarcode/datamatrix/BC_EdifactEncoder.cpp
+++ b/fxbarcode/datamatrix/BC_EdifactEncoder.cpp
@@ -32,17 +32,17 @@
 
 namespace {
 
-WideString EncodeToEdifactCodewords(const WideString& sb, int32_t startPos) {
-  int32_t len = sb.GetLength() - startPos;
+WideString EncodeToEdifactCodewords(const WideString& sb) {
+  size_t len = sb.GetLength();
   if (len == 0)
     return WideString();
 
-  wchar_t c1 = sb[startPos];
-  wchar_t c2 = len >= 2 ? sb[startPos + 1] : 0;
-  wchar_t c3 = len >= 3 ? sb[startPos + 2] : 0;
-  wchar_t c4 = len >= 4 ? sb[startPos + 3] : 0;
+  wchar_t c1 = sb[0];
+  wchar_t c2 = len >= 2 ? sb[1] : 0;
+  wchar_t c3 = len >= 3 ? sb[2] : 0;
+  wchar_t c4 = len >= 4 ? sb[3] : 0;
   int32_t v = (c1 << 18) + (c2 << 12) + (c3 << 6) + c4;
-  constexpr int32_t kBuflen = 3;
+  constexpr size_t kBuflen = 3;
   wchar_t cw[kBuflen];
   cw[0] = static_cast<wchar_t>((v >> 16) & 255);
   cw[1] = static_cast<wchar_t>((v >> 8) & 255);
@@ -69,7 +69,7 @@
   }
 
   int32_t restChars = count - 1;
-  WideString encoded = EncodeToEdifactCodewords(buffer, 0);
+  WideString encoded = EncodeToEdifactCodewords(buffer);
   if (encoded.IsEmpty())
     return false;
 
@@ -134,7 +134,7 @@
     context->m_pos++;
     size_t count = buffer.GetLength();
     if (count >= 4) {
-      WideString encoded = EncodeToEdifactCodewords(buffer, 0);
+      WideString encoded = EncodeToEdifactCodewords(buffer);
       if (encoded.IsEmpty())
         return false;