Optimize MaybeEmbedPositionAdjustmentPatterns().

Change-Id: I547288c19c714a8222af89e0499d6786dad917c7
Reviewed-on: https://pdfium-review.googlesource.com/42457
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/fxbarcode/qrcode/BC_QRCoderMatrixUtil.cpp b/fxbarcode/qrcode/BC_QRCoderMatrixUtil.cpp
index 5320303..2a13ade 100644
--- a/fxbarcode/qrcode/BC_QRCoderMatrixUtil.cpp
+++ b/fxbarcode/qrcode/BC_QRCoderMatrixUtil.cpp
@@ -41,29 +41,28 @@
                                                        {1, 0, 0, 0, 1},
                                                        {1, 1, 1, 1, 1}};
 
-constexpr int16_t POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE[39][7] =
-    // NOLINTNEXTLINE
-    {
-        {6, 18, -1, -1, -1, -1, -1},    {6, 22, -1, -1, -1, -1, -1},
-        {6, 26, -1, -1, -1, -1, -1},    {6, 30, -1, -1, -1, -1, -1},
-        {6, 34, -1, -1, -1, -1, -1},    {6, 22, 38, -1, -1, -1, -1},
-        {6, 24, 42, -1, -1, -1, -1},    {6, 26, 46, -1, -1, -1, -1},
-        {6, 28, 50, -1, -1, -1, -1},    {6, 30, 54, -1, -1, -1, -1},
-        {6, 32, 58, -1, -1, -1, -1},    {6, 34, 62, -1, -1, -1, -1},
-        {6, 26, 46, 66, -1, -1, -1},    {6, 26, 48, 70, -1, -1, -1},
-        {6, 26, 50, 74, -1, -1, -1},    {6, 30, 54, 78, -1, -1, -1},
-        {6, 30, 56, 82, -1, -1, -1},    {6, 30, 58, 86, -1, -1, -1},
-        {6, 34, 62, 90, -1, -1, -1},    {6, 28, 50, 72, 94, -1, -1},
-        {6, 26, 50, 74, 98, -1, -1},    {6, 30, 54, 78, 102, -1, -1},
-        {6, 28, 54, 80, 106, -1, -1},   {6, 32, 58, 84, 110, -1, -1},
-        {6, 30, 58, 86, 114, -1, -1},   {6, 34, 62, 90, 118, -1, -1},
-        {6, 26, 50, 74, 98, 122, -1},   {6, 30, 54, 78, 102, 126, -1},
-        {6, 26, 52, 78, 104, 130, -1},  {6, 30, 56, 82, 108, 134, -1},
-        {6, 34, 60, 86, 112, 138, -1},  {6, 30, 58, 86, 114, 142, -1},
-        {6, 34, 62, 90, 118, 146, -1},  {6, 30, 54, 78, 102, 126, 150},
-        {6, 24, 50, 76, 102, 128, 154}, {6, 28, 54, 80, 106, 132, 158},
-        {6, 32, 58, 84, 110, 136, 162}, {6, 26, 54, 82, 110, 138, 166},
-        {6, 30, 58, 86, 114, 142, 170},
+constexpr size_t kNumCoordinate = 7;
+constexpr uint8_t kPositionAdjustmentPatternCoordinates[39][kNumCoordinate] = {
+    {6, 18, 0, 0, 0, 0, 0},         {6, 22, 0, 0, 0, 0, 0},
+    {6, 26, 0, 0, 0, 0, 0},         {6, 30, 0, 0, 0, 0, 0},
+    {6, 34, 0, 0, 0, 0, 0},         {6, 22, 38, 0, 0, 0, 0},
+    {6, 24, 42, 0, 0, 0, 0},        {6, 26, 46, 0, 0, 0, 0},
+    {6, 28, 50, 0, 0, 0, 0},        {6, 30, 54, 0, 0, 0, 0},
+    {6, 32, 58, 0, 0, 0, 0},        {6, 34, 62, 0, 0, 0, 0},
+    {6, 26, 46, 66, 0, 0, 0},       {6, 26, 48, 70, 0, 0, 0},
+    {6, 26, 50, 74, 0, 0, 0},       {6, 30, 54, 78, 0, 0, 0},
+    {6, 30, 56, 82, 0, 0, 0},       {6, 30, 58, 86, 0, 0, 0},
+    {6, 34, 62, 90, 0, 0, 0},       {6, 28, 50, 72, 94, 0, 0},
+    {6, 26, 50, 74, 98, 0, 0},      {6, 30, 54, 78, 102, 0, 0},
+    {6, 28, 54, 80, 106, 0, 0},     {6, 32, 58, 84, 110, 0, 0},
+    {6, 30, 58, 86, 114, 0, 0},     {6, 34, 62, 90, 118, 0, 0},
+    {6, 26, 50, 74, 98, 122, 0},    {6, 30, 54, 78, 102, 126, 0},
+    {6, 26, 52, 78, 104, 130, 0},   {6, 30, 56, 82, 108, 134, 0},
+    {6, 34, 60, 86, 112, 138, 0},   {6, 30, 58, 86, 114, 142, 0},
+    {6, 34, 62, 90, 118, 146, 0},   {6, 30, 54, 78, 102, 126, 150},
+    {6, 24, 50, 76, 102, 128, 154}, {6, 28, 54, 80, 106, 132, 158},
+    {6, 32, 58, 84, 110, 136, 162}, {6, 26, 54, 82, 110, 138, 166},
+    {6, 30, 58, 86, 114, 142, 170},
 };
 
 const uint8_t TYPE_INFO_COORDINATES[15][2] = {
@@ -346,18 +345,18 @@
     return true;
 
   const size_t index = version - 2;
-  if (index >= FX_ArraySize(POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE))
+  if (index >= FX_ArraySize(kPositionAdjustmentPatternCoordinates))
     return false;
 
-  const auto* coordinates =
-      &POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE[index][0];
-  constexpr int32_t numCoordinate = 7;
-  for (int32_t i = 0; i < numCoordinate; i++) {
-    for (int32_t j = 0; j < numCoordinate; j++) {
-      int32_t y = coordinates[i];
-      int32_t x = coordinates[j];
-      if (x == -1 || y == -1)
-        continue;
+  const auto* coordinates = &kPositionAdjustmentPatternCoordinates[index][0];
+  for (size_t i = 0; i < kNumCoordinate; i++) {
+    const int32_t y = coordinates[i];
+    if (y == 0)
+      break;
+    for (size_t j = 0; j < kNumCoordinate; j++) {
+      const int32_t x = coordinates[j];
+      if (x == 0)
+        break;
 
       if (IsEmpty(matrix->Get(x, y))) {
         if (!EmbedPositionAdjustmentPattern(x - 2, y - 2, matrix))