Get rid of "exceptions" in CBC_QRCoderBitVector::At().

Replace it with a CHECK() that should not fail since all the existing
callers check the bit vector's size.

Change-Id: Id90ca612766661959c7879754dc34ad401402fbd
Reviewed-on: https://pdfium-review.googlesource.com/c/45767
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/fxbarcode/qrcode/BC_QRCoderBitVector.cpp b/fxbarcode/qrcode/BC_QRCoderBitVector.cpp
index 7a41ad0..09dddc3 100644
--- a/fxbarcode/qrcode/BC_QRCoderBitVector.cpp
+++ b/fxbarcode/qrcode/BC_QRCoderBitVector.cpp
@@ -25,15 +25,12 @@
 #include "core/fxcrt/fx_memory.h"
 #include "fxbarcode/utils.h"
 
-CBC_QRCoderBitVector::CBC_QRCoderBitVector() {}
+CBC_QRCoderBitVector::CBC_QRCoderBitVector() = default;
 
-CBC_QRCoderBitVector::~CBC_QRCoderBitVector() {}
+CBC_QRCoderBitVector::~CBC_QRCoderBitVector() = default;
 
-int32_t CBC_QRCoderBitVector::At(size_t index, int32_t& e) const {
-  if (index >= m_sizeInBits) {
-    e = BCExceptionBadIndexException;
-    return 0;
-  }
+int32_t CBC_QRCoderBitVector::At(size_t index) const {
+  CHECK(index < m_sizeInBits);
   int32_t value = m_array[index >> 3] & 0xff;
   return (value >> (7 - (index & 0x7))) & 1;
 }
@@ -73,14 +70,9 @@
   }
 }
 
-void CBC_QRCoderBitVector::AppendBitVector(CBC_QRCoderBitVector* bits) {
-  int32_t size = bits->Size();
-  for (int32_t i = 0; i < size; i++) {
-    int e = BCExceptionNO;
-    int32_t num = bits->At(i, e);
-    ASSERT(e == BCExceptionNO);
-    AppendBit(num);
-  }
+void CBC_QRCoderBitVector::AppendBitVector(const CBC_QRCoderBitVector* bits) {
+  for (size_t i = 0; i < bits->Size(); i++)
+    AppendBit(bits->At(i));
 }
 
 bool CBC_QRCoderBitVector::XOR(const CBC_QRCoderBitVector* other) {
diff --git a/fxbarcode/qrcode/BC_QRCoderBitVector.h b/fxbarcode/qrcode/BC_QRCoderBitVector.h
index 0ebeb60..9b8af81 100644
--- a/fxbarcode/qrcode/BC_QRCoderBitVector.h
+++ b/fxbarcode/qrcode/BC_QRCoderBitVector.h
@@ -18,13 +18,13 @@
   ~CBC_QRCoderBitVector();
 
   const uint8_t* GetArray() const;
-  int32_t At(size_t index, int32_t& e) const;
+  int32_t At(size_t index) const;
   size_t Size() const;
   size_t sizeInBytes() const;
 
   void AppendBit(int32_t bit);
   void AppendBits(int32_t value, int32_t numBits);
-  void AppendBitVector(CBC_QRCoderBitVector* bits);
+  void AppendBitVector(const CBC_QRCoderBitVector* bits);
   bool XOR(const CBC_QRCoderBitVector* other);
 
  private:
diff --git a/fxbarcode/qrcode/BC_QRCoderMatrixUtil.cpp b/fxbarcode/qrcode/BC_QRCoderMatrixUtil.cpp
index 2a13ade..59d275f 100644
--- a/fxbarcode/qrcode/BC_QRCoderMatrixUtil.cpp
+++ b/fxbarcode/qrcode/BC_QRCoderMatrixUtil.cpp
@@ -96,7 +96,7 @@
                    int32_t maskPattern,
                    CBC_CommonByteMatrix* matrix) {
   int32_t e = BCExceptionNO;
-  size_t bitIndex = 0;
+  size_t szBitIndex = 0;
   int32_t direction = -1;
   int32_t x = matrix->GetWidth() - 1;
   int32_t y = matrix->GetHeight() - 1;
@@ -115,11 +115,9 @@
           continue;
         }
         int32_t bit;
-        if (bitIndex < dataBits->Size()) {
-          bit = dataBits->At(bitIndex, e);
-          if (e != BCExceptionNO)
-            return false;
-          bitIndex++;
+        if (szBitIndex < dataBits->Size()) {
+          bit = dataBits->At(szBitIndex);
+          szBitIndex++;
         } else {
           bit = 0;
         }
@@ -139,7 +137,7 @@
     y += direction;
     x -= 2;
   }
-  return bitIndex == dataBits->Size();
+  return szBitIndex == dataBits->Size();
 }
 
 int32_t CalculateBCHCode(int32_t value, int32_t poly) {
@@ -184,11 +182,8 @@
   if (!MakeTypeInfoBits(ecLevel, maskPattern, &typeInfoBits))
     return false;
 
-  int32_t e = BCExceptionNO;
   for (size_t i = 0; i < typeInfoBits.Size(); i++) {
-    int32_t bit = typeInfoBits.At(typeInfoBits.Size() - 1 - i, e);
-    if (e != BCExceptionNO)
-      return false;
+    int32_t bit = typeInfoBits.At(typeInfoBits.Size() - 1 - i);
     int32_t x1 = TYPE_INFO_COORDINATES[i][0];
     int32_t y1 = TYPE_INFO_COORDINATES[i][1];
     matrix->Set(x1, y1, bit);
@@ -205,25 +200,21 @@
   return true;
 }
 
-bool MaybeEmbedVersionInfo(int32_t version, CBC_CommonByteMatrix* matrix) {
+void MaybeEmbedVersionInfo(int32_t version, CBC_CommonByteMatrix* matrix) {
   if (version < 7)
-    return true;
+    return;
 
   CBC_QRCoderBitVector versionInfoBits;
   MakeVersionInfoBits(version, &versionInfoBits);
   int32_t bitIndex = 6 * 3 - 1;
-  int32_t e = BCExceptionNO;
   for (int32_t i = 0; i < 6; i++) {
     for (int32_t j = 0; j < 3; j++) {
-      int32_t bit = versionInfoBits.At(bitIndex, e);
-      if (e != BCExceptionNO)
-        return false;
+      int32_t bit = versionInfoBits.At(bitIndex);
       bitIndex--;
       matrix->Set(i, matrix->GetHeight() - 11 + j, bit);
       matrix->Set(matrix->GetHeight() - 11 + j, i, bit);
     }
   }
-  return true;
 }
 
 bool EmbedTimingPatterns(CBC_CommonByteMatrix* matrix) {
@@ -396,9 +387,7 @@
     return false;
   if (!EmbedTypeInfo(ecLevel, maskPattern, matrix))
     return false;
-  if (!MaybeEmbedVersionInfo(version, matrix))
-    return false;
-  if (!EmbedDataBits(dataBits, maskPattern, matrix))
-    return false;
-  return true;
+
+  MaybeEmbedVersionInfo(version, matrix);
+  return EmbedDataBits(dataBits, maskPattern, matrix);
 }
diff --git a/fxbarcode/utils.h b/fxbarcode/utils.h
index 94e7266..7d41e91 100644
--- a/fxbarcode/utils.h
+++ b/fxbarcode/utils.h
@@ -25,7 +25,6 @@
 #define BCExceptionNO 0
 #define BCExceptionIllegalArgument 16
 #define BCExceptionValueMustBeEither0or1 50
-#define BCExceptionBadIndexException 52
 #define BCExceptionInvalidateMaskPattern 68
 #define BCExceptionCharacterNotThisMode 75
 #define BCExceptionGeneric 107