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();