Convert kQRCoderECBDataTable to std::array<>.
Add an extra level of braces for each of the nested arrays
thus introduced (unfortunate, but required).
Change-Id: I420ed22d2d5e1c17262e034f28957be9022d8d76
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/119691
Reviewed-by: Thomas Sepez <tsepez@google.com>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/fxbarcode/qrcode/BC_QRCoderECBlockData.cpp b/fxbarcode/qrcode/BC_QRCoderECBlockData.cpp
index be3d237..ed70efd 100644
--- a/fxbarcode/qrcode/BC_QRCoderECBlockData.cpp
+++ b/fxbarcode/qrcode/BC_QRCoderECBlockData.cpp
@@ -22,162 +22,168 @@
#include "fxbarcode/qrcode/BC_QRCoderECBlockData.h"
-const CBC_QRCoderECBlockData kQRCoderECBDataTable[40][4] = {
- {{7, 1, 19, 0, 0}, {10, 1, 16, 0, 0}, {13, 1, 13, 0, 0}, {17, 1, 9, 0, 0}},
- {{10, 1, 34, 0, 0},
- {16, 1, 28, 0, 0},
- {22, 1, 22, 0, 0},
- {28, 1, 16, 0, 0}},
- {{15, 1, 55, 0, 0},
- {26, 1, 44, 0, 0},
- {18, 2, 17, 0, 0},
- {22, 2, 13, 0, 0}},
- {{20, 1, 80, 0, 0}, {18, 2, 32, 0, 0}, {26, 2, 24, 0, 0}, {16, 4, 9, 0, 0}},
- {{26, 1, 108, 0, 0},
- {24, 2, 43, 0, 0},
- {18, 2, 15, 2, 16},
- {22, 2, 11, 2, 12}},
- {{18, 2, 68, 0, 0},
- {16, 4, 27, 0, 0},
- {24, 4, 19, 0, 0},
- {28, 4, 15, 0, 0}},
- {{20, 2, 78, 0, 0},
- {18, 4, 31, 0, 0},
- {18, 2, 14, 4, 15},
- {26, 4, 13, 1, 14}},
- {{24, 2, 97, 0, 0},
- {22, 2, 38, 2, 39},
- {22, 4, 18, 2, 19},
- {26, 4, 14, 2, 15}},
- {{30, 2, 116, 0, 0},
- {22, 3, 36, 2, 37},
- {20, 4, 16, 4, 17},
- {24, 4, 12, 4, 13}},
- {{18, 2, 68, 2, 69},
- {26, 4, 43, 1, 44},
- {24, 6, 19, 2, 20},
- {28, 6, 15, 2, 16}},
- {{20, 4, 81, 0, 0},
- {30, 1, 50, 4, 51},
- {28, 4, 22, 4, 23},
- {24, 3, 12, 8, 13}},
- {{24, 2, 92, 2, 93},
- {22, 6, 36, 2, 37},
- {26, 4, 20, 6, 21},
- {28, 7, 14, 4, 15}},
- {{26, 4, 107, 0, 0},
- {22, 8, 37, 1, 38},
- {24, 8, 20, 4, 21},
- {22, 12, 11, 4, 12}},
- {{30, 3, 115, 1, 116},
- {24, 4, 40, 5, 41},
- {20, 11, 16, 5, 17},
- {24, 11, 12, 5, 13}},
- {{22, 5, 87, 1, 88},
- {24, 5, 41, 5, 42},
- {30, 5, 24, 7, 25},
- {24, 11, 12, 7, 13}},
- {{24, 5, 98, 1, 99},
- {28, 7, 45, 3, 46},
- {24, 15, 19, 2, 20},
- {30, 3, 15, 13, 16}},
- {{28, 1, 107, 5, 108},
- {28, 10, 46, 1, 47},
- {28, 1, 22, 15, 23},
- {28, 2, 14, 17, 15}},
- {{30, 5, 120, 1, 121},
- {26, 9, 43, 4, 44},
- {28, 17, 22, 1, 23},
- {28, 2, 14, 19, 15}},
- {{28, 3, 113, 4, 114},
- {26, 3, 44, 11, 45},
- {26, 17, 21, 4, 22},
- {26, 9, 13, 16, 14}},
- {{28, 3, 107, 5, 108},
- {26, 3, 41, 13, 42},
- {30, 15, 24, 5, 25},
- {28, 15, 15, 10, 16}},
- {{28, 4, 116, 4, 117},
- {26, 17, 42, 0, 0},
- {28, 17, 22, 6, 23},
- {30, 19, 16, 6, 17}},
- {{28, 2, 111, 7, 112},
- {28, 17, 46, 0, 0},
- {30, 7, 24, 16, 25},
- {24, 34, 13, 0, 0}},
- {{30, 4, 121, 5, 122},
- {28, 4, 47, 14, 48},
- {30, 11, 24, 14, 25},
- {30, 16, 15, 14, 16}},
- {{30, 6, 117, 4, 118},
- {28, 6, 45, 14, 46},
- {30, 11, 24, 16, 25},
- {30, 30, 16, 2, 17}},
- {{26, 8, 106, 4, 107},
- {28, 8, 47, 13, 48},
- {30, 7, 24, 22, 25},
- {30, 22, 15, 13, 16}},
- {{28, 10, 114, 2, 115},
- {28, 19, 46, 4, 47},
- {28, 28, 22, 6, 23},
- {30, 33, 16, 4, 17}},
- {{30, 8, 122, 4, 123},
- {28, 22, 45, 3, 46},
- {30, 8, 23, 26, 24},
- {30, 12, 15, 28, 16}},
- {{30, 3, 117, 10, 118},
- {28, 3, 45, 23, 46},
- {30, 4, 24, 31, 25},
- {30, 11, 15, 31, 16}},
- {{30, 7, 116, 7, 117},
- {28, 21, 45, 7, 46},
- {30, 1, 23, 37, 24},
- {30, 19, 15, 26, 16}},
- {{30, 5, 115, 10, 116},
- {28, 19, 47, 10, 48},
- {30, 15, 24, 25, 25},
- {30, 23, 15, 25, 16}},
- {{30, 13, 115, 3, 116},
- {28, 2, 46, 29, 47},
- {30, 42, 24, 1, 25},
- {30, 23, 15, 28, 16}},
- {{30, 17, 115, 0, 0},
- {28, 10, 46, 23, 47},
- {30, 10, 24, 35, 25},
- {30, 19, 15, 35, 16}},
- {{30, 17, 115, 1, 116},
- {28, 14, 46, 21, 47},
- {30, 29, 24, 19, 25},
- {30, 11, 15, 46, 16}},
- {{30, 13, 115, 6, 116},
- {28, 14, 46, 23, 47},
- {30, 44, 24, 7, 25},
- {30, 59, 16, 1, 17}},
- {{30, 12, 121, 7, 122},
- {28, 12, 47, 26, 48},
- {30, 39, 24, 14, 25},
- {30, 22, 15, 41, 16}},
- {{30, 6, 121, 14, 122},
- {28, 6, 47, 34, 48},
- {30, 46, 24, 10, 25},
- {30, 2, 15, 64, 16}},
- {{30, 17, 122, 4, 123},
- {28, 29, 46, 14, 47},
- {30, 49, 24, 10, 25},
- {30, 24, 15, 46, 16}},
- {{30, 4, 122, 18, 123},
- {28, 13, 46, 32, 47},
- {30, 48, 24, 14, 25},
- {30, 42, 15, 32, 16}},
- {{30, 20, 117, 4, 118},
- {28, 40, 47, 7, 48},
- {30, 43, 24, 22, 25},
- {30, 10, 15, 67, 16}},
- {{30, 19, 118, 6, 119},
- {28, 18, 47, 31, 48},
- {30, 34, 24, 34, 25},
- {30, 20, 15, 61, 16}},
-};
+const std::array<const ECBlockDataRow, 40> kQRCoderECBDataTable = {{
+ {{{7, 1, 19, 0, 0},
+ {10, 1, 16, 0, 0},
+ {13, 1, 13, 0, 0},
+ {17, 1, 9, 0, 0}}},
+ {{{10, 1, 34, 0, 0},
+ {16, 1, 28, 0, 0},
+ {22, 1, 22, 0, 0},
+ {28, 1, 16, 0, 0}}},
+ {{{15, 1, 55, 0, 0},
+ {26, 1, 44, 0, 0},
+ {18, 2, 17, 0, 0},
+ {22, 2, 13, 0, 0}}},
+ {{{20, 1, 80, 0, 0},
+ {18, 2, 32, 0, 0},
+ {26, 2, 24, 0, 0},
+ {16, 4, 9, 0, 0}}},
+ {{{26, 1, 108, 0, 0},
+ {24, 2, 43, 0, 0},
+ {18, 2, 15, 2, 16},
+ {22, 2, 11, 2, 12}}},
+ {{{18, 2, 68, 0, 0},
+ {16, 4, 27, 0, 0},
+ {24, 4, 19, 0, 0},
+ {28, 4, 15, 0, 0}}},
+ {{{20, 2, 78, 0, 0},
+ {18, 4, 31, 0, 0},
+ {18, 2, 14, 4, 15},
+ {26, 4, 13, 1, 14}}},
+ {{{24, 2, 97, 0, 0},
+ {22, 2, 38, 2, 39},
+ {22, 4, 18, 2, 19},
+ {26, 4, 14, 2, 15}}},
+ {{{30, 2, 116, 0, 0},
+ {22, 3, 36, 2, 37},
+ {20, 4, 16, 4, 17},
+ {24, 4, 12, 4, 13}}},
+ {{{18, 2, 68, 2, 69},
+ {26, 4, 43, 1, 44},
+ {24, 6, 19, 2, 20},
+ {28, 6, 15, 2, 16}}},
+ {{{20, 4, 81, 0, 0},
+ {30, 1, 50, 4, 51},
+ {28, 4, 22, 4, 23},
+ {24, 3, 12, 8, 13}}},
+ {{{24, 2, 92, 2, 93},
+ {22, 6, 36, 2, 37},
+ {26, 4, 20, 6, 21},
+ {28, 7, 14, 4, 15}}},
+ {{{26, 4, 107, 0, 0},
+ {22, 8, 37, 1, 38},
+ {24, 8, 20, 4, 21},
+ {22, 12, 11, 4, 12}}},
+ {{{30, 3, 115, 1, 116},
+ {24, 4, 40, 5, 41},
+ {20, 11, 16, 5, 17},
+ {24, 11, 12, 5, 13}}},
+ {{{22, 5, 87, 1, 88},
+ {24, 5, 41, 5, 42},
+ {30, 5, 24, 7, 25},
+ {24, 11, 12, 7, 13}}},
+ {{{24, 5, 98, 1, 99},
+ {28, 7, 45, 3, 46},
+ {24, 15, 19, 2, 20},
+ {30, 3, 15, 13, 16}}},
+ {{{28, 1, 107, 5, 108},
+ {28, 10, 46, 1, 47},
+ {28, 1, 22, 15, 23},
+ {28, 2, 14, 17, 15}}},
+ {{{30, 5, 120, 1, 121},
+ {26, 9, 43, 4, 44},
+ {28, 17, 22, 1, 23},
+ {28, 2, 14, 19, 15}}},
+ {{{28, 3, 113, 4, 114},
+ {26, 3, 44, 11, 45},
+ {26, 17, 21, 4, 22},
+ {26, 9, 13, 16, 14}}},
+ {{{28, 3, 107, 5, 108},
+ {26, 3, 41, 13, 42},
+ {30, 15, 24, 5, 25},
+ {28, 15, 15, 10, 16}}},
+ {{{28, 4, 116, 4, 117},
+ {26, 17, 42, 0, 0},
+ {28, 17, 22, 6, 23},
+ {30, 19, 16, 6, 17}}},
+ {{{28, 2, 111, 7, 112},
+ {28, 17, 46, 0, 0},
+ {30, 7, 24, 16, 25},
+ {24, 34, 13, 0, 0}}},
+ {{{30, 4, 121, 5, 122},
+ {28, 4, 47, 14, 48},
+ {30, 11, 24, 14, 25},
+ {30, 16, 15, 14, 16}}},
+ {{{30, 6, 117, 4, 118},
+ {28, 6, 45, 14, 46},
+ {30, 11, 24, 16, 25},
+ {30, 30, 16, 2, 17}}},
+ {{{26, 8, 106, 4, 107},
+ {28, 8, 47, 13, 48},
+ {30, 7, 24, 22, 25},
+ {30, 22, 15, 13, 16}}},
+ {{{28, 10, 114, 2, 115},
+ {28, 19, 46, 4, 47},
+ {28, 28, 22, 6, 23},
+ {30, 33, 16, 4, 17}}},
+ {{{30, 8, 122, 4, 123},
+ {28, 22, 45, 3, 46},
+ {30, 8, 23, 26, 24},
+ {30, 12, 15, 28, 16}}},
+ {{{30, 3, 117, 10, 118},
+ {28, 3, 45, 23, 46},
+ {30, 4, 24, 31, 25},
+ {30, 11, 15, 31, 16}}},
+ {{{30, 7, 116, 7, 117},
+ {28, 21, 45, 7, 46},
+ {30, 1, 23, 37, 24},
+ {30, 19, 15, 26, 16}}},
+ {{{30, 5, 115, 10, 116},
+ {28, 19, 47, 10, 48},
+ {30, 15, 24, 25, 25},
+ {30, 23, 15, 25, 16}}},
+ {{{30, 13, 115, 3, 116},
+ {28, 2, 46, 29, 47},
+ {30, 42, 24, 1, 25},
+ {30, 23, 15, 28, 16}}},
+ {{{30, 17, 115, 0, 0},
+ {28, 10, 46, 23, 47},
+ {30, 10, 24, 35, 25},
+ {30, 19, 15, 35, 16}}},
+ {{{30, 17, 115, 1, 116},
+ {28, 14, 46, 21, 47},
+ {30, 29, 24, 19, 25},
+ {30, 11, 15, 46, 16}}},
+ {{{30, 13, 115, 6, 116},
+ {28, 14, 46, 23, 47},
+ {30, 44, 24, 7, 25},
+ {30, 59, 16, 1, 17}}},
+ {{{30, 12, 121, 7, 122},
+ {28, 12, 47, 26, 48},
+ {30, 39, 24, 14, 25},
+ {30, 22, 15, 41, 16}}},
+ {{{30, 6, 121, 14, 122},
+ {28, 6, 47, 34, 48},
+ {30, 46, 24, 10, 25},
+ {30, 2, 15, 64, 16}}},
+ {{{30, 17, 122, 4, 123},
+ {28, 29, 46, 14, 47},
+ {30, 49, 24, 10, 25},
+ {30, 24, 15, 46, 16}}},
+ {{{30, 4, 122, 18, 123},
+ {28, 13, 46, 32, 47},
+ {30, 48, 24, 14, 25},
+ {30, 42, 15, 32, 16}}},
+ {{{30, 20, 117, 4, 118},
+ {28, 40, 47, 7, 48},
+ {30, 43, 24, 22, 25},
+ {30, 10, 15, 67, 16}}},
+ {{{30, 19, 118, 6, 119},
+ {28, 18, 47, 31, 48},
+ {30, 34, 24, 34, 25},
+ {30, 20, 15, 61, 16}}},
+}};
int32_t CBC_QRCoderECBlockData::GetECCodeWordsPerBlock() const {
return ecCodeWordsPerBlock;
diff --git a/fxbarcode/qrcode/BC_QRCoderECBlockData.h b/fxbarcode/qrcode/BC_QRCoderECBlockData.h
index 72d74c2..6076c19 100644
--- a/fxbarcode/qrcode/BC_QRCoderECBlockData.h
+++ b/fxbarcode/qrcode/BC_QRCoderECBlockData.h
@@ -9,6 +9,8 @@
#include <stdint.h>
+#include <array>
+
struct CBC_QRCoderECBlockData {
int32_t GetNumBlocks() const;
int32_t GetTotalECCodeWords() const;
@@ -24,6 +26,7 @@
int32_t GetECCodeWordsPerBlock() const;
};
-extern const CBC_QRCoderECBlockData kQRCoderECBDataTable[40][4];
+using ECBlockDataRow = std::array<CBC_QRCoderECBlockData, 4>;
+extern const std::array<const ECBlockDataRow, 40> kQRCoderECBDataTable;
#endif // FXBARCODE_QRCODE_BC_QRCODERECBLOCKSDATA_H_
diff --git a/fxbarcode/qrcode/BC_QRCoderVersion.cpp b/fxbarcode/qrcode/BC_QRCoderVersion.cpp
index b474fb3..f732132 100644
--- a/fxbarcode/qrcode/BC_QRCoderVersion.cpp
+++ b/fxbarcode/qrcode/BC_QRCoderVersion.cpp
@@ -42,12 +42,12 @@
} // namespace
CBC_QRCoderVersion::CBC_QRCoderVersion(int32_t versionNumber,
- const CBC_QRCoderECBlockData data[4])
+ const ECBlockDataRow& row)
: m_versionNumber(versionNumber) {
- m_ecBlocksArray[0] = std::make_unique<CBC_QRCoderECBlockData>(data[0]);
- m_ecBlocksArray[1] = std::make_unique<CBC_QRCoderECBlockData>(data[1]);
- m_ecBlocksArray[2] = std::make_unique<CBC_QRCoderECBlockData>(data[2]);
- m_ecBlocksArray[3] = std::make_unique<CBC_QRCoderECBlockData>(data[3]);
+ m_ecBlocksArray[0] = std::make_unique<CBC_QRCoderECBlockData>(row[0]);
+ m_ecBlocksArray[1] = std::make_unique<CBC_QRCoderECBlockData>(row[1]);
+ m_ecBlocksArray[2] = std::make_unique<CBC_QRCoderECBlockData>(row[2]);
+ m_ecBlocksArray[3] = std::make_unique<CBC_QRCoderECBlockData>(row[3]);
m_totalCodeWords = m_ecBlocksArray[0]->GetTotalDataCodeWords();
}
diff --git a/fxbarcode/qrcode/BC_QRCoderVersion.h b/fxbarcode/qrcode/BC_QRCoderVersion.h
index ea77f54..d4746f6 100644
--- a/fxbarcode/qrcode/BC_QRCoderVersion.h
+++ b/fxbarcode/qrcode/BC_QRCoderVersion.h
@@ -18,8 +18,7 @@
public:
static constexpr int32_t kMaxVersion = 40;
- CBC_QRCoderVersion(int32_t versionNumber,
- const CBC_QRCoderECBlockData data[4]);
+ CBC_QRCoderVersion(int32_t versionNumber, const ECBlockDataRow& row);
~CBC_QRCoderVersion();
static void Initialize();