From 8b6186f89002099d406508acecf4bccc4ef64c95 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Tue, 28 Mar 2017 12:06:45 -0700 Subject: Remove CFX_ArrayTemplate from FX barcode code. This is now the last usage in pdfium, types to be removed in a follow-on CL. Change-Id: I16f67eb3eb99f21bb231829168203be125129ad7 Reviewed-on: https://pdfium-review.googlesource.com/3247 Reviewed-by: dsinclair Commit-Queue: dsinclair --- xfa/fxbarcode/BC_UtilCodingConvert.cpp | 12 +- xfa/fxbarcode/BC_UtilCodingConvert.h | 6 +- xfa/fxbarcode/BC_Utils.cpp | 13 +- xfa/fxbarcode/common/BC_CommonBitArray.cpp | 63 +-- xfa/fxbarcode/common/BC_CommonBitArray.h | 22 +- xfa/fxbarcode/common/BC_CommonBitMatrix.cpp | 7 +- xfa/fxbarcode/common/BC_CommonByteArray.cpp | 2 +- xfa/fxbarcode/common/BC_CommonByteArray.h | 4 +- .../common/reedsolomon/BC_ReedSolomon.cpp | 57 ++- xfa/fxbarcode/common/reedsolomon/BC_ReedSolomon.h | 10 +- .../common/reedsolomon/BC_ReedSolomonGF256.cpp | 5 +- .../common/reedsolomon/BC_ReedSolomonGF256Poly.cpp | 128 +++--- .../common/reedsolomon/BC_ReedSolomonGF256Poly.h | 10 +- xfa/fxbarcode/datamatrix/BC_DefaultPlacement.cpp | 9 +- xfa/fxbarcode/datamatrix/BC_DefaultPlacement.h | 6 +- xfa/fxbarcode/datamatrix/BC_ErrorCorrection.cpp | 11 +- xfa/fxbarcode/datamatrix/BC_HighLevelEncoder.cpp | 49 +-- xfa/fxbarcode/datamatrix/BC_HighLevelEncoder.h | 10 +- xfa/fxbarcode/oned/BC_OnedCode128Writer.cpp | 24 +- xfa/fxbarcode/oned/BC_OnedCode128Writer.h | 6 +- xfa/fxbarcode/pdf417/BC_PDF417.cpp | 28 +- xfa/fxbarcode/pdf417/BC_PDF417.h | 8 +- xfa/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.cpp | 44 +- xfa/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.h | 12 +- xfa/fxbarcode/pdf417/BC_PDF417BarcodeRow.cpp | 35 +- xfa/fxbarcode/pdf417/BC_PDF417BarcodeRow.h | 12 +- xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp | 16 +- xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h | 13 +- .../pdf417/BC_PDF417HighLevelEncoder_unittest.cpp | 6 +- xfa/fxbarcode/pdf417/BC_PDF417Writer.cpp | 17 +- xfa/fxbarcode/pdf417/BC_PDF417Writer.h | 4 +- xfa/fxbarcode/qrcode/BC_QRCoderECBlocks.cpp | 12 +- xfa/fxbarcode/qrcode/BC_QRCoderECBlocks.h | 6 +- xfa/fxbarcode/qrcode/BC_QRCoderEncoder.cpp | 25 +- xfa/fxbarcode/qrcode/BC_QRCoderEncoder.h | 2 +- xfa/fxbarcode/qrcode/BC_QRCoderVersion.cpp | 472 ++++++++++----------- xfa/fxbarcode/qrcode/BC_QRCoderVersion.h | 10 +- xfa/fxbarcode/utils.h | 4 +- 38 files changed, 595 insertions(+), 585 deletions(-) diff --git a/xfa/fxbarcode/BC_UtilCodingConvert.cpp b/xfa/fxbarcode/BC_UtilCodingConvert.cpp index c06cffc218..159bced47a 100644 --- a/xfa/fxbarcode/BC_UtilCodingConvert.cpp +++ b/xfa/fxbarcode/BC_UtilCodingConvert.cpp @@ -22,20 +22,20 @@ void CBC_UtilCodingConvert::LocaleToUtf8(const CFX_ByteString& src, } void CBC_UtilCodingConvert::LocaleToUtf8(const CFX_ByteString& src, - CFX_ArrayTemplate& dst) { + std::vector& dst) { CFX_WideString unicode = CFX_WideString::FromLocal(src.AsStringC()); CFX_ByteString utf8 = unicode.UTF8Encode(); for (int32_t i = 0; i < utf8.GetLength(); i++) { - dst.Add(utf8[i]); + dst.push_back(utf8[i]); } } -void CBC_UtilCodingConvert::Utf8ToLocale(const CFX_ArrayTemplate& src, +void CBC_UtilCodingConvert::Utf8ToLocale(const std::vector& src, CFX_ByteString& dst) { CFX_ByteString utf8; - for (int32_t i = 0; i < src.GetSize(); i++) { - utf8 += src[i]; - } + for (uint8_t value : src) + utf8 += value; + CFX_WideString unicode = CFX_WideString::FromUTF8(utf8.AsStringC()); dst = CFX_ByteString::FromUnicode(unicode); } diff --git a/xfa/fxbarcode/BC_UtilCodingConvert.h b/xfa/fxbarcode/BC_UtilCodingConvert.h index 859eeea1e9..51cc93df19 100644 --- a/xfa/fxbarcode/BC_UtilCodingConvert.h +++ b/xfa/fxbarcode/BC_UtilCodingConvert.h @@ -7,6 +7,8 @@ #ifndef XFA_FXBARCODE_BC_UTILCODINGCONVERT_H_ #define XFA_FXBARCODE_BC_UTILCODINGCONVERT_H_ +#include + #include "core/fxcrt/fx_basic.h" class CBC_UtilCodingConvert { @@ -18,8 +20,8 @@ class CBC_UtilCodingConvert { static void LocaleToUtf8(const CFX_ByteString& source, CFX_ByteString& result); static void LocaleToUtf8(const CFX_ByteString& source, - CFX_ArrayTemplate& result); - static void Utf8ToLocale(const CFX_ArrayTemplate& source, + std::vector& result); + static void Utf8ToLocale(const std::vector& source, CFX_ByteString& result); static void Utf8ToLocale(const uint8_t* source, int32_t count, diff --git a/xfa/fxbarcode/BC_Utils.cpp b/xfa/fxbarcode/BC_Utils.cpp index b1dcf4a973..d0e89dce10 100644 --- a/xfa/fxbarcode/BC_Utils.cpp +++ b/xfa/fxbarcode/BC_Utils.cpp @@ -4,6 +4,8 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com +#include + #include "core/fxcrt/fx_basic.h" #include "xfa/fxbarcode/utils.h" @@ -21,14 +23,13 @@ bool BC_FX_ByteString_Replace(CFX_ByteString& dst, } return true; } + void BC_FX_ByteString_Append(CFX_ByteString& dst, int32_t count, char c) { - for (int32_t i = 0; i < count; i++) { + for (int32_t i = 0; i < count; i++) dst += c; - } } void BC_FX_ByteString_Append(CFX_ByteString& dst, - const CFX_ArrayTemplate& ba) { - for (int32_t i = 0; i < ba.GetSize(); i++) { - dst += ba[i]; - } + const std::vector& ba) { + for (uint8_t value : ba) + dst += value; } diff --git a/xfa/fxbarcode/common/BC_CommonBitArray.cpp b/xfa/fxbarcode/common/BC_CommonBitArray.cpp index 0371837fde..f53e677389 100644 --- a/xfa/fxbarcode/common/BC_CommonBitArray.cpp +++ b/xfa/fxbarcode/common/BC_CommonBitArray.cpp @@ -21,49 +21,63 @@ */ #include "xfa/fxbarcode/common/BC_CommonBitArray.h" + +#include + #include "xfa/fxbarcode/utils.h" CBC_CommonBitArray::CBC_CommonBitArray(CBC_CommonBitArray* array) { m_size = array->GetSize(); - m_bits.Copy(array->GetBits()); + m_bits = array->GetBits(); } + CBC_CommonBitArray::CBC_CommonBitArray() { - m_bits.SetSize(1); + m_bits.resize(1); m_size = 0; } + CBC_CommonBitArray::CBC_CommonBitArray(int32_t size) { - m_bits.SetSize((size + 31) >> 5); + m_bits.resize((size + 31) >> 5); m_size = size; } -CBC_CommonBitArray::~CBC_CommonBitArray() { - m_size = 0; -} -int32_t CBC_CommonBitArray::GetSize() { + +CBC_CommonBitArray::~CBC_CommonBitArray() {} + +size_t CBC_CommonBitArray::GetSize() { return m_size; } -CFX_ArrayTemplate& CBC_CommonBitArray::GetBits() { + +std::vector& CBC_CommonBitArray::GetBits() { return m_bits; } -int32_t CBC_CommonBitArray::GetSizeInBytes() { + +size_t CBC_CommonBitArray::GetSizeInBytes() { return (m_size + 7) >> 3; } -bool CBC_CommonBitArray::Get(int32_t i) { + +bool CBC_CommonBitArray::Get(size_t i) { return (m_bits[i >> 5] & (1 << (i & 0x1f))) != 0; } -void CBC_CommonBitArray::Set(int32_t i) { + +void CBC_CommonBitArray::Set(size_t i) { m_bits[i >> 5] |= 1 << (i & 0x1F); } -void CBC_CommonBitArray::Flip(int32_t i) { + +void CBC_CommonBitArray::Flip(size_t i) { m_bits[i >> 5] ^= 1 << (i & 0x1F); } -void CBC_CommonBitArray::SetBulk(int32_t i, int32_t newBits) { + +void CBC_CommonBitArray::SetBulk(size_t i, int32_t newBits) { m_bits[i >> 5] = newBits; } + void CBC_CommonBitArray::Clear() { - FXSYS_memset(&m_bits[0], 0x00, m_bits.GetSize() * sizeof(int32_t)); + for (auto& value : m_bits) + value = 0; } -bool CBC_CommonBitArray::IsRange(int32_t start, - int32_t end, + +bool CBC_CommonBitArray::IsRange(size_t start, + size_t end, bool value, int32_t& e) { if (end < start) { @@ -95,19 +109,16 @@ bool CBC_CommonBitArray::IsRange(int32_t start, } return true; } + int32_t* CBC_CommonBitArray::GetBitArray() { - return &m_bits[0]; + return m_bits.data(); } + void CBC_CommonBitArray::Reverse() { - int32_t* newBits = FX_Alloc(int32_t, m_bits.GetSize()); - FXSYS_memset(newBits, 0x00, m_bits.GetSize() * sizeof(int32_t)); - int32_t size = m_size; - int32_t i; - for (i = 0; i < size; i++) { - if (Get(size - i - 1)) { + std::vector newBits(m_bits.size()); + for (size_t i = 0; i < m_size; i++) { + if (Get(m_size - i - 1)) newBits[i >> 5] |= 1 << (i & 0x1F); - } } - FXSYS_memcpy(&m_bits[0], newBits, m_bits.GetSize() * sizeof(int32_t)); - FX_Free(newBits); + m_bits = std::move(newBits); } diff --git a/xfa/fxbarcode/common/BC_CommonBitArray.h b/xfa/fxbarcode/common/BC_CommonBitArray.h index 6ad8ab321d..841ca99149 100644 --- a/xfa/fxbarcode/common/BC_CommonBitArray.h +++ b/xfa/fxbarcode/common/BC_CommonBitArray.h @@ -7,6 +7,8 @@ #ifndef XFA_FXBARCODE_COMMON_BC_COMMONBITARRAY_H_ #define XFA_FXBARCODE_COMMON_BC_COMMONBITARRAY_H_ +#include + #include "core/fxcrt/fx_basic.h" class CBC_CommonBitArray { @@ -16,21 +18,21 @@ class CBC_CommonBitArray { CBC_CommonBitArray(); virtual ~CBC_CommonBitArray(); - int32_t GetSize(); - CFX_ArrayTemplate& GetBits(); - int32_t GetSizeInBytes(); - bool Get(int32_t i); - void Set(int32_t i); - void Flip(int32_t i); - void SetBulk(int32_t i, int32_t newBits); - bool IsRange(int32_t start, int32_t end, bool value, int32_t& e); + size_t GetSize(); + size_t GetSizeInBytes(); + std::vector& GetBits(); int32_t* GetBitArray(); + bool Get(size_t i); + void Set(size_t i); + void Flip(size_t i); + void SetBulk(size_t i, int32_t newBits); + bool IsRange(size_t start, size_t end, bool value, int32_t& e); void Reverse(); void Clear(); private: - int32_t m_size; - CFX_ArrayTemplate m_bits; + size_t m_size; + std::vector m_bits; }; #endif // XFA_FXBARCODE_COMMON_BC_COMMONBITARRAY_H_ diff --git a/xfa/fxbarcode/common/BC_CommonBitMatrix.cpp b/xfa/fxbarcode/common/BC_CommonBitMatrix.cpp index b9b218c60f..5e65bd74cf 100644 --- a/xfa/fxbarcode/common/BC_CommonBitMatrix.cpp +++ b/xfa/fxbarcode/common/BC_CommonBitMatrix.cpp @@ -104,7 +104,7 @@ void CBC_CommonBitMatrix::SetRegion(int32_t left, CBC_CommonBitArray* CBC_CommonBitMatrix::GetRow(int32_t y, CBC_CommonBitArray* row) { CBC_CommonBitArray* rowArray = nullptr; - if (!row || row->GetSize() < m_width) { + if (!row || static_cast(row->GetSize()) < m_width) { rowArray = new CBC_CommonBitArray(m_width); } else { rowArray = new CBC_CommonBitArray(row); @@ -123,11 +123,12 @@ void CBC_CommonBitMatrix::SetRow(int32_t y, CBC_CommonBitArray* row) { l++; } } + void CBC_CommonBitMatrix::SetCol(int32_t y, CBC_CommonBitArray* col) { - for (int32_t i = 0; i < col->GetBits().GetSize(); i++) { + for (size_t i = 0; i < col->GetBits().size(); ++i) m_bits[i * m_rowSize + y] = col->GetBitArray()[i]; - } } + int32_t CBC_CommonBitMatrix::GetWidth() { return m_width; } diff --git a/xfa/fxbarcode/common/BC_CommonByteArray.cpp b/xfa/fxbarcode/common/BC_CommonByteArray.cpp index 050ecb0bf8..e950f0f941 100644 --- a/xfa/fxbarcode/common/BC_CommonByteArray.cpp +++ b/xfa/fxbarcode/common/BC_CommonByteArray.cpp @@ -85,7 +85,7 @@ void CBC_CommonByteArray::Set(uint8_t* source, int32_t offset, int32_t count) { FXSYS_memcpy(m_bytes, source + offset, count); m_index = count; } -void CBC_CommonByteArray::Set(CFX_ArrayTemplate* source, +void CBC_CommonByteArray::Set(std::vector* source, int32_t offset, int32_t count) { FX_Free(m_bytes); diff --git a/xfa/fxbarcode/common/BC_CommonByteArray.h b/xfa/fxbarcode/common/BC_CommonByteArray.h index 009f625a86..e1fe4c7f2e 100644 --- a/xfa/fxbarcode/common/BC_CommonByteArray.h +++ b/xfa/fxbarcode/common/BC_CommonByteArray.h @@ -7,6 +7,8 @@ #ifndef XFA_FXBARCODE_COMMON_BC_COMMONBYTEARRAY_H_ #define XFA_FXBARCODE_COMMON_BC_COMMONBYTEARRAY_H_ +#include + #include "core/fxcrt/fx_basic.h" // TODO(weili): The usage of this class should be replaced by @@ -25,7 +27,7 @@ class CBC_CommonByteArray { void AppendByte(int32_t value); void Reserve(int32_t capacity); void Set(uint8_t* source, int32_t offset, int32_t count); - void Set(CFX_ArrayTemplate* source, int32_t offset, int32_t count); + void Set(std::vector* source, int32_t offset, int32_t count); private: int32_t m_size; diff --git a/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomon.cpp b/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomon.cpp index 7698890366..82a729b067 100644 --- a/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomon.cpp +++ b/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomon.cpp @@ -30,18 +30,17 @@ CBC_ReedSolomonEncoder::CBC_ReedSolomonEncoder(CBC_ReedSolomonGF256* field) { m_field = field; } + void CBC_ReedSolomonEncoder::Init() { - m_cachedGenerators.Add(new CBC_ReedSolomonGF256Poly(m_field, 1)); + m_cachedGenerators.push_back(new CBC_ReedSolomonGF256Poly(m_field, 1)); } -CBC_ReedSolomonGF256Poly* CBC_ReedSolomonEncoder::BuildGenerator(int32_t degree, + +CBC_ReedSolomonGF256Poly* CBC_ReedSolomonEncoder::BuildGenerator(size_t degree, int32_t& e) { - if (degree >= m_cachedGenerators.GetSize()) { - CBC_ReedSolomonGF256Poly* lastGenerator = - m_cachedGenerators[m_cachedGenerators.GetSize() - 1]; - for (int32_t d = m_cachedGenerators.GetSize(); d <= degree; d++) { - CFX_ArrayTemplate temp; - temp.Add(1); - temp.Add(m_field->Exp(d - 1)); + if (degree >= m_cachedGenerators.size()) { + CBC_ReedSolomonGF256Poly* lastGenerator = m_cachedGenerators.back(); + for (size_t d = m_cachedGenerators.size(); d <= degree; ++d) { + std::vector temp = {1, m_field->Exp(d - 1)}; CBC_ReedSolomonGF256Poly temp_poly; temp_poly.Init(m_field, &temp, e); if (e != BCExceptionNO) @@ -50,31 +49,31 @@ CBC_ReedSolomonGF256Poly* CBC_ReedSolomonEncoder::BuildGenerator(int32_t degree, lastGenerator->Multiply(&temp_poly, e); if (e != BCExceptionNO) return nullptr; - m_cachedGenerators.Add(nextGenerator); + m_cachedGenerators.push_back(nextGenerator); lastGenerator = nextGenerator; } } return m_cachedGenerators[degree]; } -void CBC_ReedSolomonEncoder::Encode(CFX_ArrayTemplate* toEncode, - int32_t ecBytes, + +void CBC_ReedSolomonEncoder::Encode(std::vector* toEncode, + size_t ecBytes, int32_t& e) { if (ecBytes == 0) { e = BCExceptionNoCorrectionBytes; return; } - int32_t dataBytes = toEncode->GetSize() - ecBytes; - if (dataBytes <= 0) { + if (toEncode->size() <= ecBytes) { e = BCExceptionNoDataBytesProvided; return; } CBC_ReedSolomonGF256Poly* generator = BuildGenerator(ecBytes, e); if (e != BCExceptionNO) return; - CFX_ArrayTemplate infoCoefficients; - infoCoefficients.SetSize(dataBytes); - for (int32_t x = 0; x < dataBytes; x++) { - infoCoefficients[x] = toEncode->operator[](x); + size_t dataBytes = toEncode->size() - ecBytes; + std::vector infoCoefficients(dataBytes); + for (size_t x = 0; x < dataBytes; x++) { + infoCoefficients[x] = (*toEncode)[x]; } CBC_ReedSolomonGF256Poly info; info.Init(m_field, &infoCoefficients, e); @@ -84,25 +83,23 @@ void CBC_ReedSolomonEncoder::Encode(CFX_ArrayTemplate* toEncode, info.MultiplyByMonomial(ecBytes, 1, e)); if (e != BCExceptionNO) return; - std::unique_ptr> temp( + std::unique_ptr> temp( infoTemp->Divide(generator, e)); if (e != BCExceptionNO) return; CBC_ReedSolomonGF256Poly* remainder = (*temp)[1]; - CFX_ArrayTemplate* coefficients = remainder->GetCoefficients(); - int32_t numZeroCoefficients = ecBytes - coefficients->GetSize(); - for (int32_t i = 0; i < numZeroCoefficients; i++) { + std::vector* coefficients = remainder->GetCoefficients(); + size_t numZeroCoefficients = + ecBytes > coefficients->size() ? ecBytes - coefficients->size() : 0; + for (size_t i = 0; i < numZeroCoefficients; i++) (*toEncode)[dataBytes + i] = 0; - } - for (int32_t y = 0; y < coefficients->GetSize(); y++) { - (*toEncode)[dataBytes + numZeroCoefficients + y] = - coefficients->operator[](y); - } - for (int32_t k = 0; k < temp->GetSize(); k++) { + for (size_t y = 0; y < coefficients->size(); y++) + (*toEncode)[dataBytes + numZeroCoefficients + y] = (*coefficients)[y]; + for (size_t k = 0; k < temp->size(); k++) delete (*temp)[k]; - } } + CBC_ReedSolomonEncoder::~CBC_ReedSolomonEncoder() { - for (int32_t i = 0; i < m_cachedGenerators.GetSize(); i++) + for (size_t i = 0; i < m_cachedGenerators.size(); i++) delete m_cachedGenerators[i]; } diff --git a/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomon.h b/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomon.h index 95828f1a0e..5e5c7c52d3 100644 --- a/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomon.h +++ b/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomon.h @@ -7,6 +7,8 @@ #ifndef XFA_FXBARCODE_COMMON_REEDSOLOMON_BC_REEDSOLOMON_H_ #define XFA_FXBARCODE_COMMON_REEDSOLOMON_BC_REEDSOLOMON_H_ +#include + #include "core/fxcrt/fx_basic.h" class CBC_ReedSolomonGF256; @@ -17,16 +19,14 @@ class CBC_ReedSolomonEncoder { explicit CBC_ReedSolomonEncoder(CBC_ReedSolomonGF256* field); virtual ~CBC_ReedSolomonEncoder(); - void Encode(CFX_ArrayTemplate* toEncode, - int32_t ecBytes, - int32_t& e); + void Encode(std::vector* toEncode, size_t ecBytes, int32_t& e); virtual void Init(); private: - CBC_ReedSolomonGF256Poly* BuildGenerator(int32_t degree, int32_t& e); + CBC_ReedSolomonGF256Poly* BuildGenerator(size_t degree, int32_t& e); CBC_ReedSolomonGF256* m_field; - CFX_ArrayTemplate m_cachedGenerators; + std::vector m_cachedGenerators; }; #endif // XFA_FXBARCODE_COMMON_REEDSOLOMON_BC_REEDSOLOMON_H_ diff --git a/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp b/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp index ce84d8e08d..349ed0789a 100644 --- a/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp +++ b/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp @@ -22,6 +22,8 @@ #include "xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.h" +#include + #include "third_party/base/ptr_util.h" #include "xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.h" @@ -86,8 +88,7 @@ CBC_ReedSolomonGF256Poly* CBC_ReedSolomonGF256::BuildMonomial( return nullptr; return temp; } - CFX_ArrayTemplate coefficients; - coefficients.SetSize(degree + 1); + std::vector coefficients(degree + 1); coefficients[0] = coefficient; CBC_ReedSolomonGF256Poly* temp = new CBC_ReedSolomonGF256Poly(); temp->Init(this, &coefficients, e); diff --git a/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.cpp b/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.cpp index a0bbc025c4..e4ee30b586 100644 --- a/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.cpp +++ b/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.cpp @@ -23,7 +23,9 @@ #include "xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.h" #include +#include +#include "third_party/base/stl_util.h" #include "xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.h" CBC_ReedSolomonGF256Poly::CBC_ReedSolomonGF256Poly(CBC_ReedSolomonGF256* field, @@ -32,69 +34,75 @@ CBC_ReedSolomonGF256Poly::CBC_ReedSolomonGF256Poly(CBC_ReedSolomonGF256* field, return; m_field = field; - m_coefficients.Add(coefficients); + m_coefficients.push_back(coefficients); } + CBC_ReedSolomonGF256Poly::CBC_ReedSolomonGF256Poly() { m_field = nullptr; } + void CBC_ReedSolomonGF256Poly::Init(CBC_ReedSolomonGF256* field, - CFX_ArrayTemplate* coefficients, + std::vector* coefficients, int32_t& e) { - if (!coefficients || coefficients->GetSize() == 0) { + if (!coefficients || coefficients->empty()) { e = BCExceptionCoefficientsSizeIsNull; return; } m_field = field; - int32_t coefficientsLength = coefficients->GetSize(); - if ((coefficientsLength > 1 && (*coefficients)[0] == 0)) { - int32_t firstNonZero = 1; - while ((firstNonZero < coefficientsLength) && - ((*coefficients)[firstNonZero] == 0)) { + size_t coefficientsLength = coefficients->size(); + if (coefficientsLength > 1 && coefficients->front() == 0) { + size_t firstNonZero = 1; + while (firstNonZero < coefficientsLength && + (*coefficients)[firstNonZero] == 0) { firstNonZero++; } if (firstNonZero == coefficientsLength) { - m_coefficients.Copy(*(m_field->GetZero()->GetCoefficients())); + m_coefficients = *(m_field->GetZero()->GetCoefficients()); } else { - m_coefficients.SetSize(coefficientsLength - firstNonZero); - for (int32_t i = firstNonZero, j = 0; i < coefficientsLength; i++, j++) { - m_coefficients[j] = coefficients->operator[](i); - } + m_coefficients.resize(coefficientsLength - firstNonZero); + for (size_t i = firstNonZero, j = 0; i < coefficientsLength; i++, j++) + m_coefficients[j] = (*coefficients)[i]; } } else { - m_coefficients.Copy(*coefficients); + m_coefficients = *coefficients; } } -CFX_ArrayTemplate* CBC_ReedSolomonGF256Poly::GetCoefficients() { + +std::vector* CBC_ReedSolomonGF256Poly::GetCoefficients() { return &m_coefficients; } + int32_t CBC_ReedSolomonGF256Poly::GetDegree() { - return m_coefficients.GetSize() - 1; + return pdfium::CollectionSize(m_coefficients) - 1; } + bool CBC_ReedSolomonGF256Poly::IsZero() { - return m_coefficients[0] == 0; + return m_coefficients.front() == 0; } + int32_t CBC_ReedSolomonGF256Poly::GetCoefficients(int32_t degree) { - return m_coefficients[m_coefficients.GetSize() - 1 - degree]; + return m_coefficients[m_coefficients.size() - 1 - degree]; } + int32_t CBC_ReedSolomonGF256Poly::EvaluateAt(int32_t a) { if (a == 0) { return GetCoefficients(0); } - int32_t size = m_coefficients.GetSize(); + size_t size = m_coefficients.size(); if (a == 1) { int32_t result = 0; - for (int32_t i = 0; i < size; i++) { + for (size_t i = 0; i < size; i++) result = CBC_ReedSolomonGF256::AddOrSubtract(result, m_coefficients[i]); - } return result; } int32_t result = m_coefficients[0]; - for (int32_t j = 1; j < size; j++) { + for (size_t j = 1; j < size; j++) { result = CBC_ReedSolomonGF256::AddOrSubtract(m_field->Multiply(a, result), m_coefficients[j]); } return result; } + CBC_ReedSolomonGF256Poly* CBC_ReedSolomonGF256Poly::Clone(int32_t& e) { CBC_ReedSolomonGF256Poly* temp = new CBC_ReedSolomonGF256Poly(); temp->Init(m_field, &m_coefficients, e); @@ -110,26 +118,19 @@ CBC_ReedSolomonGF256Poly* CBC_ReedSolomonGF256Poly::AddOrSubtract( if (other->IsZero()) return Clone(e); - CFX_ArrayTemplate smallerCoefficients; - smallerCoefficients.Copy(m_coefficients); - CFX_ArrayTemplate largerCoefficients; - largerCoefficients.Copy(*(other->GetCoefficients())); - if (smallerCoefficients.GetSize() > largerCoefficients.GetSize()) { - CFX_ArrayTemplate temp; - temp.Copy(smallerCoefficients); - smallerCoefficients.Copy(largerCoefficients); - largerCoefficients.Copy(temp); + std::vector smallerCoefficients = m_coefficients; + std::vector largerCoefficients = *(other->GetCoefficients()); + if (smallerCoefficients.size() > largerCoefficients.size()) { + std::swap(smallerCoefficients, largerCoefficients); } - CFX_ArrayTemplate sumDiff; - sumDiff.SetSize(largerCoefficients.GetSize()); - int32_t lengthDiff = - largerCoefficients.GetSize() - smallerCoefficients.GetSize(); - for (int32_t i = 0; i < lengthDiff; i++) { + std::vector sumDiff(largerCoefficients.size()); + size_t lengthDiff = largerCoefficients.size() - smallerCoefficients.size(); + for (size_t i = 0; i < lengthDiff; i++) { sumDiff[i] = largerCoefficients[i]; } - for (int32_t j = lengthDiff; j < largerCoefficients.GetSize(); j++) { - sumDiff[j] = (CBC_ReedSolomonGF256::AddOrSubtract( - smallerCoefficients[j - lengthDiff], largerCoefficients[j])); + for (size_t j = lengthDiff; j < largerCoefficients.size(); j++) { + sumDiff[j] = CBC_ReedSolomonGF256::AddOrSubtract( + smallerCoefficients[j - lengthDiff], largerCoefficients[j]); } CBC_ReedSolomonGF256Poly* temp = new CBC_ReedSolomonGF256Poly(); temp->Init(m_field, &sumDiff, e); @@ -143,20 +144,17 @@ CBC_ReedSolomonGF256Poly* CBC_ReedSolomonGF256Poly::Multiply( if (IsZero() || other->IsZero()) return m_field->GetZero()->Clone(e); - CFX_ArrayTemplate aCoefficients; - aCoefficients.Copy(m_coefficients); - int32_t aLength = m_coefficients.GetSize(); - CFX_ArrayTemplate bCoefficients; - bCoefficients.Copy(*(other->GetCoefficients())); - int32_t bLength = other->GetCoefficients()->GetSize(); - CFX_ArrayTemplate product; - product.SetSize(aLength + bLength - 1); - for (int32_t i = 0; i < aLength; i++) { + std::vector aCoefficients = m_coefficients; + std::vector bCoefficients = *(other->GetCoefficients()); + size_t aLength = aCoefficients.size(); + size_t bLength = bCoefficients.size(); + std::vector product(aLength + bLength - 1); + for (size_t i = 0; i < aLength; i++) { int32_t aCoeff = m_coefficients[i]; - for (int32_t j = 0; j < bLength; j++) { + for (size_t j = 0; j < bLength; j++) { product[i + j] = CBC_ReedSolomonGF256::AddOrSubtract( product[i + j], - m_field->Multiply(aCoeff, other->GetCoefficients()->operator[](j))); + m_field->Multiply(aCoeff, (*other->GetCoefficients())[j])); } } CBC_ReedSolomonGF256Poly* temp = new CBC_ReedSolomonGF256Poly(); @@ -172,10 +170,9 @@ CBC_ReedSolomonGF256Poly* CBC_ReedSolomonGF256Poly::Multiply(int32_t scalar, if (scalar == 1) return Clone(e); - int32_t size = m_coefficients.GetSize(); - CFX_ArrayTemplate product; - product.SetSize(size); - for (int32_t i = 0; i < size; i++) { + size_t size = m_coefficients.size(); + std::vector product(size); + for (size_t i = 0; i < size; i++) { product[i] = m_field->Multiply(m_coefficients[i], scalar); } CBC_ReedSolomonGF256Poly* temp = new CBC_ReedSolomonGF256Poly(); @@ -195,11 +192,10 @@ CBC_ReedSolomonGF256Poly* CBC_ReedSolomonGF256Poly::MultiplyByMonomial( if (coefficient == 0) return m_field->GetZero()->Clone(e); - int32_t size = m_coefficients.GetSize(); - CFX_ArrayTemplate product; - product.SetSize(size + degree); - for (int32_t i = 0; i < size; i++) { - product[i] = (m_field->Multiply(m_coefficients[i], coefficient)); + size_t size = m_coefficients.size(); + std::vector product(size + degree); + for (size_t i = 0; i < size; i++) { + product[i] = m_field->Multiply(m_coefficients[i], coefficient); } CBC_ReedSolomonGF256Poly* temp = new CBC_ReedSolomonGF256Poly(); temp->Init(m_field, &product, e); @@ -208,7 +204,7 @@ CBC_ReedSolomonGF256Poly* CBC_ReedSolomonGF256Poly::MultiplyByMonomial( return temp; } -CFX_ArrayTemplate* CBC_ReedSolomonGF256Poly::Divide( +std::vector* CBC_ReedSolomonGF256Poly::Divide( CBC_ReedSolomonGF256Poly* other, int32_t& e) { if (other->IsZero()) { @@ -247,13 +243,11 @@ CFX_ArrayTemplate* CBC_ReedSolomonGF256Poly::Divide( if (e != BCExceptionNO) return nullptr; } - CFX_ArrayTemplate* tempPtrA = - new CFX_ArrayTemplate(); - tempPtrA->Add(quotient.release()); - tempPtrA->Add(remainder.release()); + std::vector* tempPtrA = + new std::vector(); + tempPtrA->push_back(quotient.release()); + tempPtrA->push_back(remainder.release()); return tempPtrA; } -CBC_ReedSolomonGF256Poly::~CBC_ReedSolomonGF256Poly() { - m_coefficients.RemoveAll(); -} +CBC_ReedSolomonGF256Poly::~CBC_ReedSolomonGF256Poly() {} diff --git a/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.h b/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.h index ff93264e00..6fc7509399 100644 --- a/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.h +++ b/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.h @@ -7,6 +7,8 @@ #ifndef XFA_FXBARCODE_COMMON_REEDSOLOMON_BC_REEDSOLOMONGF256POLY_H_ #define XFA_FXBARCODE_COMMON_REEDSOLOMON_BC_REEDSOLOMONGF256POLY_H_ +#include + #include "core/fxcrt/fx_basic.h" class CBC_ReedSolomonGF256; @@ -17,11 +19,11 @@ class CBC_ReedSolomonGF256Poly final { CBC_ReedSolomonGF256Poly(); ~CBC_ReedSolomonGF256Poly(); void Init(CBC_ReedSolomonGF256* field, - CFX_ArrayTemplate* coefficients, + std::vector* coefficients, int32_t& e); int32_t GetCoefficients(int32_t degree); - CFX_ArrayTemplate* GetCoefficients(); + std::vector* GetCoefficients(); int32_t GetDegree(); bool IsZero(); int32_t EvaluateAt(int32_t a); @@ -33,7 +35,7 @@ class CBC_ReedSolomonGF256Poly final { CBC_ReedSolomonGF256Poly* MultiplyByMonomial(int32_t degree, int32_t coefficient, int32_t& e); - CFX_ArrayTemplate* Divide( + std::vector* Divide( CBC_ReedSolomonGF256Poly* other, int32_t& e); @@ -41,7 +43,7 @@ class CBC_ReedSolomonGF256Poly final { private: CBC_ReedSolomonGF256* m_field; - CFX_ArrayTemplate m_coefficients; + std::vector m_coefficients; }; #endif // XFA_FXBARCODE_COMMON_REEDSOLOMON_BC_REEDSOLOMONGF256POLY_H_ diff --git a/xfa/fxbarcode/datamatrix/BC_DefaultPlacement.cpp b/xfa/fxbarcode/datamatrix/BC_DefaultPlacement.cpp index e7eef07b47..f027486ee3 100644 --- a/xfa/fxbarcode/datamatrix/BC_DefaultPlacement.cpp +++ b/xfa/fxbarcode/datamatrix/BC_DefaultPlacement.cpp @@ -29,21 +29,20 @@ CBC_DefaultPlacement::CBC_DefaultPlacement(CFX_WideString codewords, m_codewords = codewords; m_numcols = numcols; m_numrows = numrows; - m_bits.SetSize(numcols * numrows); + m_bits.resize(numcols * numrows); for (int32_t i = 0; i < numcols * numrows; i++) { m_bits[i] = (uint8_t)2; } } -CBC_DefaultPlacement::~CBC_DefaultPlacement() { - m_bits.RemoveAll(); -} +CBC_DefaultPlacement::~CBC_DefaultPlacement() {} + int32_t CBC_DefaultPlacement::getNumrows() { return m_numrows; } int32_t CBC_DefaultPlacement::getNumcols() { return m_numcols; } -CFX_ArrayTemplate& CBC_DefaultPlacement::getBits() { +std::vector& CBC_DefaultPlacement::getBits() { return m_bits; } bool CBC_DefaultPlacement::getBit(int32_t col, int32_t row) { diff --git a/xfa/fxbarcode/datamatrix/BC_DefaultPlacement.h b/xfa/fxbarcode/datamatrix/BC_DefaultPlacement.h index 36a7ab2615..d3c38ca13d 100644 --- a/xfa/fxbarcode/datamatrix/BC_DefaultPlacement.h +++ b/xfa/fxbarcode/datamatrix/BC_DefaultPlacement.h @@ -7,6 +7,8 @@ #ifndef XFA_FXBARCODE_DATAMATRIX_BC_DEFAULTPLACEMENT_H_ #define XFA_FXBARCODE_DATAMATRIX_BC_DEFAULTPLACEMENT_H_ +#include + #include "core/fxcrt/fx_basic.h" class CBC_DefaultPlacement { @@ -18,7 +20,7 @@ class CBC_DefaultPlacement { int32_t getNumrows(); int32_t getNumcols(); - CFX_ArrayTemplate& getBits(); + std::vector& getBits(); bool getBit(int32_t col, int32_t row); void setBit(int32_t col, int32_t row, bool bit); bool hasBit(int32_t col, int32_t row); @@ -28,7 +30,7 @@ class CBC_DefaultPlacement { CFX_WideString m_codewords; int32_t m_numrows; int32_t m_numcols; - CFX_ArrayTemplate m_bits; + std::vector m_bits; void module(int32_t row, int32_t col, int32_t pos, int32_t bit); void utah(int32_t row, int32_t col, int32_t pos); void corner1(int32_t pos); diff --git a/xfa/fxbarcode/datamatrix/BC_ErrorCorrection.cpp b/xfa/fxbarcode/datamatrix/BC_ErrorCorrection.cpp index ffdd308d54..0af52faedd 100644 --- a/xfa/fxbarcode/datamatrix/BC_ErrorCorrection.cpp +++ b/xfa/fxbarcode/datamatrix/BC_ErrorCorrection.cpp @@ -20,6 +20,8 @@ * limitations under the License. */ +#include + #include "xfa/fxbarcode/datamatrix/BC_Encoder.h" #include "xfa/fxbarcode/datamatrix/BC_ErrorCorrection.h" #include "xfa/fxbarcode/datamatrix/BC_SymbolInfo.h" @@ -133,12 +135,9 @@ CFX_WideString CBC_ErrorCorrection::encodeECC200(CFX_WideString codewords, return CFX_WideString(); sb += ecc; } else { - CFX_ArrayTemplate dataSizes; - dataSizes.SetSize(blockCount); - CFX_ArrayTemplate errorSizes; - errorSizes.SetSize(blockCount); - CFX_ArrayTemplate startPos; - startPos.SetSize(blockCount); + std::vector dataSizes(blockCount); + std::vector errorSizes(blockCount); + std::vector startPos(blockCount); for (int32_t i = 0; i < blockCount; i++) { dataSizes[i] = symbolInfo->getDataLengthForInterleavedBlock(i + 1); errorSizes[i] = symbolInfo->getErrorLengthForInterleavedBlock(i + 1); diff --git a/xfa/fxbarcode/datamatrix/BC_HighLevelEncoder.cpp b/xfa/fxbarcode/datamatrix/BC_HighLevelEncoder.cpp index 90877c7ef3..3ece55f2e9 100644 --- a/xfa/fxbarcode/datamatrix/BC_HighLevelEncoder.cpp +++ b/xfa/fxbarcode/datamatrix/BC_HighLevelEncoder.cpp @@ -58,13 +58,12 @@ const wchar_t CBC_HighLevelEncoder::MACRO_TRAILER = 0x0004; CBC_HighLevelEncoder::CBC_HighLevelEncoder() {} CBC_HighLevelEncoder::~CBC_HighLevelEncoder() {} -CFX_ArrayTemplate& CBC_HighLevelEncoder::getBytesForMessage( +std::vector& CBC_HighLevelEncoder::getBytesForMessage( CFX_WideString msg) { CFX_ByteString bytestr; CBC_UtilCodingConvert::UnicodeToUTF8(msg, bytestr); - for (int32_t i = 0; i < bytestr.GetLength(); i++) { - m_bytearray.Add(bytestr.GetAt(i)); - } + for (int32_t i = 0; i < bytestr.GetLength(); i++) + m_bytearray.push_back(bytestr.GetAt(i)); return m_bytearray; } CFX_WideString CBC_HighLevelEncoder::encodeHighLevel(CFX_WideString msg, @@ -161,10 +160,8 @@ int32_t CBC_HighLevelEncoder::lookAheadTest(CFX_WideString msg, while (true) { if ((startpos + charsProcessed) == msg.GetLength()) { int32_t min = std::numeric_limits::max(); - CFX_ArrayTemplate mins; - mins.SetSize(6); - CFX_ArrayTemplate intCharCounts; - intCharCounts.SetSize(6); + std::vector mins(6); + std::vector intCharCounts(6); min = findMinimums(charCounts, intCharCounts, min, mins); int32_t minCount = getMinimumCount(mins); if (intCharCounts[ASCII_ENCODATION] == min) { @@ -229,10 +226,8 @@ int32_t CBC_HighLevelEncoder::lookAheadTest(CFX_WideString msg, charCounts[BASE256_ENCODATION]++; } if (charsProcessed >= 4) { - CFX_ArrayTemplate intCharCounts; - intCharCounts.SetSize(6); - CFX_ArrayTemplate mins; - mins.SetSize(6); + std::vector intCharCounts(6); + std::vector mins(6); findMinimums(charCounts, intCharCounts, std::numeric_limits::max(), mins); int32_t minCount = getMinimumCount(mins); @@ -317,31 +312,27 @@ wchar_t CBC_HighLevelEncoder::randomize253State(wchar_t ch, return tempVariable <= 254 ? (wchar_t)tempVariable : (wchar_t)(tempVariable - 254); } -int32_t CBC_HighLevelEncoder::findMinimums( - std::vector& charCounts, - CFX_ArrayTemplate& intCharCounts, - int32_t min, - CFX_ArrayTemplate& mins) { - for (int32_t l = 0; l < mins.GetSize(); l++) { - mins[l] = (uint8_t)0; - } - for (int32_t i = 0; i < 6; i++) { - intCharCounts[i] = (int32_t)ceil(charCounts[i]); +int32_t CBC_HighLevelEncoder::findMinimums(std::vector& charCounts, + std::vector& intCharCounts, + int32_t min, + std::vector& mins) { + for (size_t l = 0; l < mins.size(); l++) + mins[l] = 0; + + for (size_t i = 0; i < 6; i++) { + intCharCounts[i] = static_cast(ceil(charCounts[i])); int32_t current = intCharCounts[i]; if (min > current) { min = current; - for (int32_t j = 0; j < mins.GetSize(); j++) { - mins[j] = (uint8_t)0; - } + for (size_t j = 0; j < mins.size(); j++) + mins[j] = 0; } - if (min == current) { + if (min == current) mins[i]++; - } } return min; } -int32_t CBC_HighLevelEncoder::getMinimumCount( - CFX_ArrayTemplate& mins) { +int32_t CBC_HighLevelEncoder::getMinimumCount(std::vector& mins) { int32_t minCount = 0; for (int32_t i = 0; i < 6; i++) { minCount += mins[i]; diff --git a/xfa/fxbarcode/datamatrix/BC_HighLevelEncoder.h b/xfa/fxbarcode/datamatrix/BC_HighLevelEncoder.h index 821dedd29f..6819e29163 100644 --- a/xfa/fxbarcode/datamatrix/BC_HighLevelEncoder.h +++ b/xfa/fxbarcode/datamatrix/BC_HighLevelEncoder.h @@ -23,7 +23,7 @@ class CBC_HighLevelEncoder : public CBC_SymbolShapeHint { CBC_HighLevelEncoder(); ~CBC_HighLevelEncoder() override; - CFX_ArrayTemplate& getBytesForMessage(CFX_WideString msg); + std::vector& getBytesForMessage(CFX_WideString msg); static CFX_WideString encodeHighLevel(CFX_WideString msg, CFX_WideString ecLevel, int32_t& e); @@ -59,15 +59,15 @@ class CBC_HighLevelEncoder : public CBC_SymbolShapeHint { static const wchar_t* MACRO_05_HEADER; static const wchar_t* MACRO_06_HEADER; static const wchar_t MACRO_TRAILER; - CFX_ArrayTemplate m_bytearray; + std::vector m_bytearray; private: static wchar_t randomize253State(wchar_t ch, int32_t codewordPosition); static int32_t findMinimums(std::vector& charCounts, - CFX_ArrayTemplate& intCharCounts, + std::vector& intCharCounts, int32_t min, - CFX_ArrayTemplate& mins); - static int32_t getMinimumCount(CFX_ArrayTemplate& mins); + std::vector& mins); + static int32_t getMinimumCount(std::vector& mins); static bool isNativeC40(wchar_t ch); static bool isNativeText(wchar_t ch); static bool isNativeX12(wchar_t ch); diff --git a/xfa/fxbarcode/oned/BC_OnedCode128Writer.cpp b/xfa/fxbarcode/oned/BC_OnedCode128Writer.cpp index c1e28a50c1..7adbb1f55c 100644 --- a/xfa/fxbarcode/oned/BC_OnedCode128Writer.cpp +++ b/xfa/fxbarcode/oned/BC_OnedCode128Writer.cpp @@ -187,7 +187,7 @@ uint8_t* CBC_OnedCode128Writer::Encode(const CFX_ByteString& contents, e = BCExceptionContentsLengthShouldBetween1and80; return nullptr; } - CFX_ArrayTemplate patterns; + std::vector patterns; int32_t checkSum = 0; if (m_codeFormat == BC_CODE128_B) { checkSum = Encode128B(contents, &patterns); @@ -198,20 +198,20 @@ uint8_t* CBC_OnedCode128Writer::Encode(const CFX_ByteString& contents, return nullptr; } checkSum %= 103; - patterns.Add(CODE_PATTERNS[checkSum]); - patterns.Add(CODE_PATTERNS[CODE_STOP]); + patterns.push_back(CODE_PATTERNS[checkSum]); + patterns.push_back(CODE_PATTERNS[CODE_STOP]); m_iContentLen = contents.GetLength() + 3; int32_t codeWidth = 0; - for (int32_t k = 0; k < patterns.GetSize(); k++) { + for (size_t k = 0; k < patterns.size(); k++) { const int32_t* pattern = patterns[k]; - for (int32_t j = 0; j < 7; j++) { + for (size_t j = 0; j < 7; j++) { codeWidth += pattern[j]; } } outLength = codeWidth; uint8_t* result = FX_Alloc(uint8_t, outLength); int32_t pos = 0; - for (int32_t j = 0; j < patterns.GetSize(); j++) { + for (size_t j = 0; j < patterns.size(); j++) { const int32_t* pattern = patterns[j]; pos += AppendPattern(result, pos, pattern, 7, 1, e); if (e != BCExceptionNO) { @@ -224,17 +224,17 @@ uint8_t* CBC_OnedCode128Writer::Encode(const CFX_ByteString& contents, int32_t CBC_OnedCode128Writer::Encode128B( const CFX_ByteString& contents, - CFX_ArrayTemplate* patterns) { + std::vector* patterns) { int32_t checkSum = 0; int32_t checkWeight = 1; int32_t position = 0; - patterns->Add(CODE_PATTERNS[CODE_START_B]); + patterns->push_back(CODE_PATTERNS[CODE_START_B]); checkSum += CODE_START_B * checkWeight; while (position < contents.GetLength()) { int32_t patternIndex = 0; patternIndex = contents[position] - ' '; position += 1; - patterns->Add(CODE_PATTERNS[patternIndex]); + patterns->push_back(CODE_PATTERNS[patternIndex]); checkSum += patternIndex * checkWeight; if (position != 0) { checkWeight++; @@ -245,11 +245,11 @@ int32_t CBC_OnedCode128Writer::Encode128B( int32_t CBC_OnedCode128Writer::Encode128C( const CFX_ByteString& contents, - CFX_ArrayTemplate* patterns) { + std::vector* patterns) { int32_t checkSum = 0; int32_t checkWeight = 1; int32_t position = 0; - patterns->Add(CODE_PATTERNS[CODE_START_C]); + patterns->push_back(CODE_PATTERNS[CODE_START_C]); checkSum += CODE_START_C * checkWeight; while (position < contents.GetLength()) { int32_t patternIndex = 0; @@ -266,7 +266,7 @@ int32_t CBC_OnedCode128Writer::Encode128C( position += 2; } } - patterns->Add(CODE_PATTERNS[patternIndex]); + patterns->push_back(CODE_PATTERNS[patternIndex]); checkSum += patternIndex * checkWeight; if (position != 0) { checkWeight++; diff --git a/xfa/fxbarcode/oned/BC_OnedCode128Writer.h b/xfa/fxbarcode/oned/BC_OnedCode128Writer.h index 60a2f03acc..ff6e4d0fa5 100644 --- a/xfa/fxbarcode/oned/BC_OnedCode128Writer.h +++ b/xfa/fxbarcode/oned/BC_OnedCode128Writer.h @@ -7,6 +7,8 @@ #ifndef XFA_FXBARCODE_ONED_BC_ONEDCODE128WRITER_H_ #define XFA_FXBARCODE_ONED_BC_ONEDCODE128WRITER_H_ +#include + #include "core/fxcrt/fx_string.h" #include "core/fxcrt/fx_system.h" #include "xfa/fxbarcode/oned/BC_OneDimWriter.h" @@ -43,9 +45,9 @@ class CBC_OnedCode128Writer : public CBC_OneDimWriter { private: bool IsDigits(const CFX_ByteString& contents, int32_t start, int32_t length); int32_t Encode128B(const CFX_ByteString& contents, - CFX_ArrayTemplate* patterns); + std::vector* patterns); int32_t Encode128C(const CFX_ByteString& contents, - CFX_ArrayTemplate* patterns); + std::vector* patterns); BC_TYPE m_codeFormat; }; diff --git a/xfa/fxbarcode/pdf417/BC_PDF417.cpp b/xfa/fxbarcode/pdf417/BC_PDF417.cpp index f7aad69953..0bc6680108 100644 --- a/xfa/fxbarcode/pdf417/BC_PDF417.cpp +++ b/xfa/fxbarcode/pdf417/BC_PDF417.cpp @@ -412,12 +412,12 @@ void CBC_PDF417::generateBarcodeLogic(CFX_WideString msg, if (e != BCExceptionNO) return; int32_t sourceCodeWords = highLevel.GetLength(); - CFX_ArrayTemplate* dimension = + std::vector* dimension = determineDimensions(sourceCodeWords, errorCorrectionCodeWords, e); if (e != BCExceptionNO) return; - int32_t cols = dimension->GetAt(0); - int32_t rows = dimension->GetAt(1); + int32_t cols = (*dimension)[0]; + int32_t rows = (*dimension)[1]; delete dimension; int32_t pad = getNumberOfPadCodewords(sourceCodeWords, errorCorrectionCodeWords, cols, rows); @@ -536,12 +536,12 @@ void CBC_PDF417::encodeLowLevel(CFX_WideString fullCodewords, } } -CFX_ArrayTemplate* CBC_PDF417::determineDimensions( +std::vector* CBC_PDF417::determineDimensions( int32_t sourceCodeWords, int32_t errorCorrectionCodeWords, int32_t& e) { float ratio = 0.0f; - CFX_ArrayTemplate* dimension = nullptr; + std::vector* dimension = nullptr; for (int32_t cols = m_minCols; cols <= m_maxCols; cols++) { int32_t rows = calculateNumberOfRows(sourceCodeWords, errorCorrectionCodeWords, cols); @@ -559,21 +559,21 @@ CFX_ArrayTemplate* CBC_PDF417::determineDimensions( } ratio = newRatio; delete dimension; - dimension = new CFX_ArrayTemplate; - dimension->Add(cols); - dimension->Add(rows); + dimension = new std::vector; + dimension->push_back(cols); + dimension->push_back(rows); } if (!dimension) { int32_t rows = calculateNumberOfRows(sourceCodeWords, errorCorrectionCodeWords, m_minCols); if (rows < m_minRows) { - dimension = new CFX_ArrayTemplate; - dimension->Add(m_minCols); - dimension->Add(m_minRows); + dimension = new std::vector; + dimension->push_back(m_minCols); + dimension->push_back(m_minRows); } else if (rows >= 3 && rows <= 90) { - dimension = new CFX_ArrayTemplate; - dimension->Add(m_minCols); - dimension->Add(rows); + dimension = new std::vector; + dimension->push_back(m_minCols); + dimension->push_back(rows); } } if (!dimension) { diff --git a/xfa/fxbarcode/pdf417/BC_PDF417.h b/xfa/fxbarcode/pdf417/BC_PDF417.h index b382e5d26e..0d8fbfaf5f 100644 --- a/xfa/fxbarcode/pdf417/BC_PDF417.h +++ b/xfa/fxbarcode/pdf417/BC_PDF417.h @@ -8,6 +8,7 @@ #define XFA_FXBARCODE_PDF417_BC_PDF417_H_ #include +#include #include "core/fxcrt/fx_basic.h" #include "xfa/fxbarcode/pdf417/BC_PDF417Compaction.h" @@ -51,10 +52,9 @@ class CBC_PDF417 { int32_t r, int32_t errorCorrectionLevel, CBC_BarcodeMatrix* logic); - CFX_ArrayTemplate* determineDimensions( - int32_t sourceCodeWords, - int32_t errorCorrectionCodeWords, - int32_t& e); + std::vector* determineDimensions(int32_t sourceCodeWords, + int32_t errorCorrectionCodeWords, + int32_t& e); std::unique_ptr m_barcodeMatrix; bool m_compact; diff --git a/xfa/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.cpp b/xfa/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.cpp index c1f4da1e3b..68bc799ec0 100644 --- a/xfa/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.cpp +++ b/xfa/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.cpp @@ -24,23 +24,22 @@ #include "xfa/fxbarcode/pdf417/BC_PDF417BarcodeRow.h" CBC_BarcodeMatrix::CBC_BarcodeMatrix(int32_t height, int32_t width) { - m_matrix.SetSize(height + 2); - for (int32_t i = 0, matrixLength = m_matrix.GetSize(); i < matrixLength; - i++) { + m_matrix.resize(height + 2); + for (size_t i = 0, matrixLength = m_matrix.size(); i < matrixLength; ++i) m_matrix[i] = new CBC_BarcodeRow((width + 4) * 17 + 1); - } + m_width = width * 17; m_height = height + 2; m_currentRow = 0; m_outHeight = 0; m_outWidth = 0; } -CBC_BarcodeMatrix::~CBC_BarcodeMatrix() { - for (int32_t i = 0; i < m_matrix.GetSize(); i++) - delete m_matrix.GetAt(i); - m_matrixOut.RemoveAll(); +CBC_BarcodeMatrix::~CBC_BarcodeMatrix() { + for (size_t i = 0; i < m_matrix.size(); i++) + delete m_matrix[i]; } + void CBC_BarcodeMatrix::set(int32_t x, int32_t y, uint8_t value) { m_matrix[y]->set(x, value); } @@ -59,30 +58,27 @@ int32_t CBC_BarcodeMatrix::getWidth() { int32_t CBC_BarcodeMatrix::getHeight() { return m_outHeight; } -CFX_ArrayTemplate& CBC_BarcodeMatrix::getMatrix() { +std::vector& CBC_BarcodeMatrix::getMatrix() { return getScaledMatrix(1, 1); } -CFX_ArrayTemplate& CBC_BarcodeMatrix::getScaledMatrix(int32_t scale) { +std::vector& CBC_BarcodeMatrix::getScaledMatrix(int32_t scale) { return getScaledMatrix(scale, scale); } -CFX_ArrayTemplate& CBC_BarcodeMatrix::getScaledMatrix(int32_t xScale, - int32_t yScale) { - int32_t yMax = m_height * yScale; - CFX_ArrayTemplate bytearray; - bytearray.Copy(m_matrix[0]->getScaledRow(xScale)); - int32_t xMax = bytearray.GetSize(); - m_matrixOut.SetSize(xMax * yMax); +std::vector& CBC_BarcodeMatrix::getScaledMatrix(int32_t xScale, + int32_t yScale) { + size_t yMax = m_height * yScale; + std::vector bytearray = m_matrix[0]->getScaledRow(xScale); + size_t xMax = bytearray.size(); + m_matrixOut.resize(xMax * yMax); m_outWidth = xMax; m_outHeight = yMax; int32_t k = 0; - for (int32_t i = 0; i < yMax; i++) { - if (i != 0) { - bytearray.Copy(m_matrix[i / yScale]->getScaledRow(xScale)); - } + for (size_t i = 0; i < yMax; i++) { + if (i != 0) + bytearray = m_matrix[i / yScale]->getScaledRow(xScale); k = i * xMax; - for (int32_t l = 0; l < xMax; l++) { - m_matrixOut[k + l] = bytearray.GetAt(l); - } + for (size_t l = 0; l < xMax; l++) + m_matrixOut[k + l] = bytearray[l]; } return m_matrixOut; } diff --git a/xfa/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.h b/xfa/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.h index 95ab547c90..bf86b7b55a 100644 --- a/xfa/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.h +++ b/xfa/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.h @@ -7,6 +7,8 @@ #ifndef XFA_FXBARCODE_PDF417_BC_PDF417BARCODEMATRIX_H_ #define XFA_FXBARCODE_PDF417_BC_PDF417BARCODEMATRIX_H_ +#include + #include "core/fxcrt/fx_basic.h" class CBC_BarcodeRow; @@ -21,15 +23,15 @@ class CBC_BarcodeMatrix { void setMatrix(int32_t x, int32_t y, bool black); void startRow(); CBC_BarcodeRow* getCurrentRow(); - CFX_ArrayTemplate& getMatrix(); - CFX_ArrayTemplate& getScaledMatrix(int32_t scale); - CFX_ArrayTemplate& getScaledMatrix(int32_t xScale, int32_t yScale); + std::vector& getMatrix(); + std::vector& getScaledMatrix(int32_t scale); + std::vector& getScaledMatrix(int32_t xScale, int32_t yScale); int32_t getWidth(); int32_t getHeight(); private: - CFX_ArrayTemplate m_matrix; - CFX_ArrayTemplate m_matrixOut; + std::vector m_matrix; + std::vector m_matrixOut; int32_t m_currentRow; int32_t m_height; int32_t m_width; diff --git a/xfa/fxbarcode/pdf417/BC_PDF417BarcodeRow.cpp b/xfa/fxbarcode/pdf417/BC_PDF417BarcodeRow.cpp index 243af70d94..427da9d588 100644 --- a/xfa/fxbarcode/pdf417/BC_PDF417BarcodeRow.cpp +++ b/xfa/fxbarcode/pdf417/BC_PDF417BarcodeRow.cpp @@ -22,32 +22,31 @@ #include "xfa/fxbarcode/pdf417/BC_PDF417BarcodeRow.h" -CBC_BarcodeRow::CBC_BarcodeRow(int32_t width) { - m_row.SetSize(width); - m_currentLocation = 0; -} -CBC_BarcodeRow::~CBC_BarcodeRow() { - m_output.RemoveAll(); - m_row.RemoveAll(); -} +CBC_BarcodeRow::CBC_BarcodeRow(size_t width) + : m_row(width), m_currentLocation(0) {} + +CBC_BarcodeRow::~CBC_BarcodeRow() {} + void CBC_BarcodeRow::set(int32_t x, uint8_t value) { - m_row.SetAt(x, value); + m_row[x] = value; } + void CBC_BarcodeRow::set(int32_t x, bool black) { - m_row.SetAt(x, (uint8_t)(black ? 1 : 0)); + m_row[x] = black ? 1 : 0; } + void CBC_BarcodeRow::addBar(bool black, int32_t width) { - for (int32_t ii = 0; ii < width; ii++) { + for (int32_t ii = 0; ii < width; ii++) set(m_currentLocation++, black); - } } -CFX_ArrayTemplate& CBC_BarcodeRow::getRow() { + +std::vector& CBC_BarcodeRow::getRow() { return m_row; } -CFX_ArrayTemplate& CBC_BarcodeRow::getScaledRow(int32_t scale) { - m_output.SetSize(m_row.GetSize() * scale); - for (int32_t i = 0; i < m_output.GetSize(); i++) { - m_output[i] = (m_row[i / scale]); - } + +std::vector& CBC_BarcodeRow::getScaledRow(int32_t scale) { + m_output.resize(m_row.size() * scale); + for (size_t i = 0; i < m_output.size(); i++) + m_output[i] = m_row[i / scale]; return m_output; } diff --git a/xfa/fxbarcode/pdf417/BC_PDF417BarcodeRow.h b/xfa/fxbarcode/pdf417/BC_PDF417BarcodeRow.h index 7d9d19cb56..9130a0c38f 100644 --- a/xfa/fxbarcode/pdf417/BC_PDF417BarcodeRow.h +++ b/xfa/fxbarcode/pdf417/BC_PDF417BarcodeRow.h @@ -7,22 +7,24 @@ #ifndef XFA_FXBARCODE_PDF417_BC_PDF417BARCODEROW_H_ #define XFA_FXBARCODE_PDF417_BC_PDF417BARCODEROW_H_ +#include + #include "core/fxcrt/fx_basic.h" class CBC_BarcodeRow { public: - explicit CBC_BarcodeRow(int32_t width); + explicit CBC_BarcodeRow(size_t width); virtual ~CBC_BarcodeRow(); void set(int32_t x, uint8_t value); void set(int32_t x, bool black); void addBar(bool black, int32_t width); - CFX_ArrayTemplate& getRow(); - CFX_ArrayTemplate& getScaledRow(int32_t scale); + std::vector& getRow(); + std::vector& getScaledRow(int32_t scale); private: - CFX_ArrayTemplate m_row; - CFX_ArrayTemplate m_output; + std::vector m_row; + std::vector m_output; int32_t m_currentLocation; }; diff --git a/xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp b/xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp index 0d9c7cfbd0..5402f3d7f7 100644 --- a/xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp +++ b/xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp @@ -71,9 +71,9 @@ CFX_WideString CBC_PDF417HighLevelEncoder::encodeHighLevel( } msg += ch; } - CFX_ArrayTemplate byteArr; + std::vector byteArr; for (int32_t k = 0; k < bytes.GetLength(); k++) { - byteArr.Add(bytes.GetAt(k)); + byteArr.push_back(bytes.GetAt(k)); } CFX_WideString sb; len = msg.GetLength(); @@ -82,7 +82,7 @@ CFX_WideString CBC_PDF417HighLevelEncoder::encodeHighLevel( if (compaction == TEXT) { encodeText(msg, p, len, sb, textSubMode); } else if (compaction == BYTES) { - encodeBinary(&byteArr, p, byteArr.GetSize(), BYTE_COMPACTION, sb); + encodeBinary(&byteArr, p, byteArr.size(), BYTE_COMPACTION, sb); } else if (compaction == NUMERIC) { sb += (wchar_t)LATCH_TO_NUMERIC; encodeNumeric(msg, p, len, sb); @@ -261,7 +261,7 @@ int32_t CBC_PDF417HighLevelEncoder::encodeText(CFX_WideString msg, } return submode; } -void CBC_PDF417HighLevelEncoder::encodeBinary(CFX_ArrayTemplate* bytes, +void CBC_PDF417HighLevelEncoder::encodeBinary(std::vector* bytes, int32_t startpos, int32_t count, int32_t startmode, @@ -278,7 +278,7 @@ void CBC_PDF417HighLevelEncoder::encodeBinary(CFX_ArrayTemplate* bytes, int64_t t = 0; for (i = 0; i < 6; i++) { t <<= 8; - t += bytes->GetAt(idx + i) & 0xff; + t += (*bytes)[idx + i] & 0xff; } for (i = 0; i < 5; i++) { chars[i] = (wchar_t)(t % 900); @@ -294,7 +294,7 @@ void CBC_PDF417HighLevelEncoder::encodeBinary(CFX_ArrayTemplate* bytes, sb += (wchar_t)LATCH_TO_BYTE_PADDED; } for (i = idx; i < startpos + count; i++) { - int32_t ch = bytes->GetAt(i) & 0xff; + int32_t ch = (*bytes)[i] & 0xff; sb += (wchar_t)ch; } } @@ -388,7 +388,7 @@ int32_t CBC_PDF417HighLevelEncoder::determineConsecutiveTextCount( } int32_t CBC_PDF417HighLevelEncoder::determineConsecutiveBinaryCount( CFX_WideString msg, - CFX_ArrayTemplate* bytes, + std::vector* bytes, int32_t startpos, int32_t& e) { int32_t len = msg.GetLength(); @@ -420,7 +420,7 @@ int32_t CBC_PDF417HighLevelEncoder::determineConsecutiveBinaryCount( return idx - startpos; } ch = msg.GetAt(idx); - if (bytes->GetAt(idx) == 63 && ch != '?') { + if ((*bytes)[idx] == 63 && ch != '?') { e = BCExceptionNonEncodableCharacterDetected; return -1; } diff --git a/xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h b/xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h index 01c2be02f8..48b8d009fc 100644 --- a/xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h +++ b/xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h @@ -7,6 +7,8 @@ #ifndef XFA_FXBARCODE_PDF417_BC_PDF417HIGHLEVELENCODER_H_ #define XFA_FXBARCODE_PDF417_BC_PDF417HIGHLEVELENCODER_H_ +#include + #include "core/fxcrt/fx_basic.h" #include "core/fxcrt/fx_string.h" #include "xfa/fxbarcode/pdf417/BC_PDF417Compaction.h" @@ -39,7 +41,7 @@ class CBC_PDF417HighLevelEncoder { int32_t count, CFX_WideString& sb, int32_t initialSubmode); - static void encodeBinary(CFX_ArrayTemplate* bytes, + static void encodeBinary(std::vector* bytes, int32_t startpos, int32_t count, int32_t startmode, @@ -58,11 +60,10 @@ class CBC_PDF417HighLevelEncoder { int32_t startpos); static int32_t determineConsecutiveTextCount(CFX_WideString msg, int32_t startpos); - static int32_t determineConsecutiveBinaryCount( - CFX_WideString msg, - CFX_ArrayTemplate* bytes, - int32_t startpos, - int32_t& e); + static int32_t determineConsecutiveBinaryCount(CFX_WideString msg, + std::vector* bytes, + int32_t startpos, + int32_t& e); friend class PDF417HighLevelEncoder_EncodeNumeric_Test; friend class PDF417HighLevelEncoder_EncodeBinary_Test; diff --git a/xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder_unittest.cpp b/xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder_unittest.cpp index 2cd60fef41..a1f3283dd8 100644 --- a/xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder_unittest.cpp +++ b/xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder_unittest.cpp @@ -43,11 +43,11 @@ TEST(PDF417HighLevelEncoder, EncodeBinary) { CBC_PDF417HighLevelEncoder::Initialize(); for (size_t i = 0; i < FX_ArraySize(encode_binary_cases); ++i) { EncodeBinaryCase* ptr = &encode_binary_cases[i]; - CFX_ArrayTemplate input_array; + std::vector input_array; size_t input_length = strlen(ptr->input); - input_array.SetSize(input_length); + input_array.resize(input_length); for (size_t j = 0; j < input_length; ++j) { - input_array.SetAt(j, ptr->input[j]); + input_array[j] = ptr->input[j]; } CFX_WideString expected(ptr->expected, ptr->expected_length); CFX_WideString result; diff --git a/xfa/fxbarcode/pdf417/BC_PDF417Writer.cpp b/xfa/fxbarcode/pdf417/BC_PDF417Writer.cpp index 2c75a14a80..ddd740d12e 100644 --- a/xfa/fxbarcode/pdf417/BC_PDF417Writer.cpp +++ b/xfa/fxbarcode/pdf417/BC_PDF417Writer.cpp @@ -64,9 +64,8 @@ uint8_t* CBC_PDF417Writer::Encode(const CFX_WideString& contents, int32_t lineThickness = 2; int32_t aspectRatio = 4; CBC_BarcodeMatrix* barcodeMatrix = encoder.getBarcodeMatrix(); - CFX_ArrayTemplate originalScale; - originalScale.Copy(barcodeMatrix->getScaledMatrix( - lineThickness, aspectRatio * lineThickness)); + std::vector originalScale = barcodeMatrix->getScaledMatrix( + lineThickness, aspectRatio * lineThickness); int32_t width = outWidth; int32_t height = outHeight; outWidth = barcodeMatrix->getWidth(); @@ -88,9 +87,8 @@ uint8_t* CBC_PDF417Writer::Encode(const CFX_WideString& contents, scale = scaleY; } if (scale > 1) { - originalScale.RemoveAll(); - originalScale.Copy(barcodeMatrix->getScaledMatrix( - scale * lineThickness, scale * aspectRatio * lineThickness)); + originalScale = barcodeMatrix->getScaledMatrix( + scale * lineThickness, scale * aspectRatio * lineThickness); if (rotated) { rotateArray(originalScale, outHeight, outWidth); int32_t temp = outHeight; @@ -99,14 +97,13 @@ uint8_t* CBC_PDF417Writer::Encode(const CFX_WideString& contents, } } uint8_t* result = FX_Alloc2D(uint8_t, outHeight, outWidth); - FXSYS_memcpy(result, originalScale.GetData(), outHeight * outWidth); + FXSYS_memcpy(result, originalScale.data(), outHeight * outWidth); return result; } -void CBC_PDF417Writer::rotateArray(CFX_ArrayTemplate& bitarray, +void CBC_PDF417Writer::rotateArray(std::vector& bitarray, int32_t height, int32_t width) { - CFX_ArrayTemplate temp; - temp.Copy(bitarray); + std::vector temp = bitarray; for (int32_t ii = 0; ii < height; ii++) { int32_t inverseii = height - ii - 1; for (int32_t jj = 0; jj < width; jj++) { diff --git a/xfa/fxbarcode/pdf417/BC_PDF417Writer.h b/xfa/fxbarcode/pdf417/BC_PDF417Writer.h index 420c441bc9..564f80849c 100644 --- a/xfa/fxbarcode/pdf417/BC_PDF417Writer.h +++ b/xfa/fxbarcode/pdf417/BC_PDF417Writer.h @@ -7,6 +7,8 @@ #ifndef XFA_FXBARCODE_PDF417_BC_PDF417WRITER_H_ #define XFA_FXBARCODE_PDF417_BC_PDF417WRITER_H_ +#include + #include "core/fxcrt/fx_string.h" #include "core/fxcrt/fx_system.h" #include "xfa/fxbarcode/BC_TwoDimWriter.h" @@ -27,7 +29,7 @@ class CBC_PDF417Writer : public CBC_TwoDimWriter { void SetTruncated(bool truncated); private: - void rotateArray(CFX_ArrayTemplate& bitarray, + void rotateArray(std::vector& bitarray, int32_t width, int32_t height); bool m_bTruncated; diff --git a/xfa/fxbarcode/qrcode/BC_QRCoderECBlocks.cpp b/xfa/fxbarcode/qrcode/BC_QRCoderECBlocks.cpp index 507c91878e..8894695e95 100644 --- a/xfa/fxbarcode/qrcode/BC_QRCoderECBlocks.cpp +++ b/xfa/fxbarcode/qrcode/BC_QRCoderECBlocks.cpp @@ -26,19 +26,19 @@ CBC_QRCoderECBlocks::CBC_QRCoderECBlocks(int32_t ecCodeWordsPerBlock, CBC_QRCoderECB* ecBlocks) : m_ecCodeWordsPerBlock(ecCodeWordsPerBlock) { - m_ecBlocksArray.Add(ecBlocks); + m_ecBlocksArray.push_back(ecBlocks); } CBC_QRCoderECBlocks::CBC_QRCoderECBlocks(int32_t ecCodeWordsPerBlock, CBC_QRCoderECB* ecBlocks1, CBC_QRCoderECB* ecBlocks2) : m_ecCodeWordsPerBlock(ecCodeWordsPerBlock) { - m_ecBlocksArray.Add(ecBlocks1); - m_ecBlocksArray.Add(ecBlocks2); + m_ecBlocksArray.push_back(ecBlocks1); + m_ecBlocksArray.push_back(ecBlocks2); } CBC_QRCoderECBlocks::~CBC_QRCoderECBlocks() { - for (int32_t i = 0; i < m_ecBlocksArray.GetSize(); i++) + for (size_t i = 0; i < m_ecBlocksArray.size(); i++) delete m_ecBlocksArray[i]; } @@ -48,7 +48,7 @@ int32_t CBC_QRCoderECBlocks::GetECCodeWordsPerBlock() const { int32_t CBC_QRCoderECBlocks::GetNumBlocks() const { int32_t total = 0; - for (int32_t i = 0; i < m_ecBlocksArray.GetSize(); i++) + for (size_t i = 0; i < m_ecBlocksArray.size(); i++) total += m_ecBlocksArray[i]->GetCount(); return total; @@ -58,6 +58,6 @@ int32_t CBC_QRCoderECBlocks::GetTotalECCodeWords() const { return m_ecCodeWordsPerBlock * GetNumBlocks(); } -CFX_ArrayTemplate* CBC_QRCoderECBlocks::GetECBlocks() { +std::vector* CBC_QRCoderECBlocks::GetECBlocks() { return &m_ecBlocksArray; } diff --git a/xfa/fxbarcode/qrcode/BC_QRCoderECBlocks.h b/xfa/fxbarcode/qrcode/BC_QRCoderECBlocks.h index a428f06355..816a983ce5 100644 --- a/xfa/fxbarcode/qrcode/BC_QRCoderECBlocks.h +++ b/xfa/fxbarcode/qrcode/BC_QRCoderECBlocks.h @@ -7,6 +7,8 @@ #ifndef XFA_FXBARCODE_QRCODE_BC_QRCODERECBLOCKS_H_ #define XFA_FXBARCODE_QRCODE_BC_QRCODERECBLOCKS_H_ +#include + #include "core/fxcrt/fx_basic.h" class CBC_QRCoderECB; @@ -22,11 +24,11 @@ class CBC_QRCoderECBlocks { int32_t GetECCodeWordsPerBlock() const; int32_t GetNumBlocks() const; int32_t GetTotalECCodeWords() const; - CFX_ArrayTemplate* GetECBlocks(); + std::vector* GetECBlocks(); private: int32_t m_ecCodeWordsPerBlock; - CFX_ArrayTemplate m_ecBlocksArray; + std::vector m_ecBlocksArray; }; #endif // XFA_FXBARCODE_QRCODE_BC_QRCODERECBLOCKS_H_ diff --git a/xfa/fxbarcode/qrcode/BC_QRCoderEncoder.cpp b/xfa/fxbarcode/qrcode/BC_QRCoderEncoder.cpp index 3a442bedbb..2534675877 100644 --- a/xfa/fxbarcode/qrcode/BC_QRCoderEncoder.cpp +++ b/xfa/fxbarcode/qrcode/BC_QRCoderEncoder.cpp @@ -101,12 +101,12 @@ void CBC_QRCoderEncoder::AppendDataModeLenghInfo( if (e != BCExceptionNO) return; } else if (tempMode == CBC_QRCoderMode::sBYTE) { - CFX_ArrayTemplate bytes; + std::vector bytes; CBC_UtilCodingConvert::LocaleToUtf8(splitResult.second, bytes); AppendModeInfo(tempMode, &headerAndDataBits, e); if (e != BCExceptionNO) return; - AppendLengthInfo(bytes.GetSize(), qrCode->GetVersion(), tempMode, + AppendLengthInfo(bytes.size(), qrCode->GetVersion(), tempMode, &headerAndDataBits, e); if (e != BCExceptionNO) return; @@ -765,10 +765,10 @@ void CBC_QRCoderEncoder::Append8BitBytes(const CFX_ByteString& content, } } -void CBC_QRCoderEncoder::Append8BitBytes(CFX_ArrayTemplate& bytes, +void CBC_QRCoderEncoder::Append8BitBytes(std::vector& bytes, CBC_QRCoderBitVector* bits, int32_t& e) { - for (int32_t i = 0; i < bytes.GetSize(); i++) { + for (size_t i = 0; i < bytes.size(); i++) { bits->AppendBits(bytes[i], 8, e); if (e != BCExceptionNO) return; @@ -778,9 +778,9 @@ void CBC_QRCoderEncoder::Append8BitBytes(CFX_ArrayTemplate& bytes, void CBC_QRCoderEncoder::AppendKanjiBytes(const CFX_ByteString& content, CBC_QRCoderBitVector* bits, int32_t& e) { - CFX_ArrayTemplate bytes; + std::vector bytes; uint32_t value = 0; - for (int32_t i = 0; i < bytes.GetSize(); i += 2) { + for (size_t i = 0; i < bytes.size(); i += 2) { value = (uint32_t)((uint8_t)(content[i] << 8) | (uint8_t)content[i + 1]); if (value <= 0x9ffc && value >= 0x8140) { value -= 0x8140; @@ -870,7 +870,7 @@ void CBC_QRCoderEncoder::InterleaveWithECBytes(CBC_QRCoderBitVector* bits, int32_t dataBytesOffset = 0; int32_t maxNumDataBytes = 0; int32_t maxNumEcBytes = 0; - CFX_ArrayTemplate blocks; + std::vector blocks; int32_t i; for (i = 0; i < numRSBlocks; i++) { int32_t numDataBytesInBlock; @@ -886,7 +886,7 @@ void CBC_QRCoderEncoder::InterleaveWithECBytes(CBC_QRCoderBitVector* bits, return; maxNumDataBytes = std::max(maxNumDataBytes, dataBytes->Size()); maxNumEcBytes = std::max(maxNumEcBytes, ecBytes->Size()); - blocks.Add( + blocks.push_back( new CBC_QRCoderBlockPair(std::move(dataBytes), std::move(ecBytes))); dataBytesOffset += numDataBytesInBlock; } @@ -895,7 +895,7 @@ void CBC_QRCoderEncoder::InterleaveWithECBytes(CBC_QRCoderBitVector* bits, return; } for (int32_t x = 0; x < maxNumDataBytes; x++) { - for (int32_t j = 0; j < blocks.GetSize(); j++) { + for (size_t j = 0; j < blocks.size(); j++) { const CBC_CommonByteArray* dataBytes = blocks[j]->GetDataBytes(); if (x < dataBytes->Size()) { result->AppendBits(dataBytes->At(x), 8, e); @@ -905,7 +905,7 @@ void CBC_QRCoderEncoder::InterleaveWithECBytes(CBC_QRCoderBitVector* bits, } } for (int32_t y = 0; y < maxNumEcBytes; y++) { - for (int32_t l = 0; l < blocks.GetSize(); l++) { + for (size_t l = 0; l < blocks.size(); l++) { const CBC_CommonByteArray* ecBytes = blocks[l]->GetErrorCorrectionBytes(); if (y < ecBytes->Size()) { result->AppendBits(ecBytes->At(y), 8, e); @@ -914,7 +914,7 @@ void CBC_QRCoderEncoder::InterleaveWithECBytes(CBC_QRCoderBitVector* bits, } } } - for (int32_t k = 0; k < blocks.GetSize(); k++) { + for (size_t k = 0; k < blocks.size(); k++) { delete blocks[k]; } if (numTotalBytes != result->sizeInBytes()) @@ -953,8 +953,7 @@ CBC_CommonByteArray* CBC_QRCoderEncoder::GenerateECBytes( int32_t numEcBytesInBlock, int32_t& e) { int32_t numDataBytes = dataBytes->Size(); - CFX_ArrayTemplate toEncode; - toEncode.SetSize(numDataBytes + numEcBytesInBlock); + std::vector toEncode(numDataBytes + numEcBytesInBlock); for (int32_t i = 0; i < numDataBytes; i++) { toEncode[i] = (dataBytes->At(i)); } diff --git a/xfa/fxbarcode/qrcode/BC_QRCoderEncoder.h b/xfa/fxbarcode/qrcode/BC_QRCoderEncoder.h index a1b078f24c..77de6e5e40 100644 --- a/xfa/fxbarcode/qrcode/BC_QRCoderEncoder.h +++ b/xfa/fxbarcode/qrcode/BC_QRCoderEncoder.h @@ -62,7 +62,7 @@ class CBC_QRCoderEncoder { CBC_QRCoderBitVector* bits, CFX_ByteString encoding, int32_t& e); - static void Append8BitBytes(CFX_ArrayTemplate& bytes, + static void Append8BitBytes(std::vector& bytes, CBC_QRCoderBitVector* bits, int32_t& e); static void AppendKanjiBytes(const CFX_ByteString& content, diff --git a/xfa/fxbarcode/qrcode/BC_QRCoderVersion.cpp b/xfa/fxbarcode/qrcode/BC_QRCoderVersion.cpp index befdc17a98..da13700ae2 100644 --- a/xfa/fxbarcode/qrcode/BC_QRCoderVersion.cpp +++ b/xfa/fxbarcode/qrcode/BC_QRCoderVersion.cpp @@ -54,14 +54,14 @@ const int32_t CBC_QRCoderVersion::VERSION_DECODE_INFO[] = { 0x1CC1A, 0x1D33F, 0x1ED75, 0x1F250, 0x209D5, 0x216F0, 0x228BA, 0x2379F, 0x24B0B, 0x2542E, 0x26A64, 0x27541, 0x28C69}; -CFX_ArrayTemplate* CBC_QRCoderVersion::VERSION = nullptr; +std::vector* CBC_QRCoderVersion::VERSION = nullptr; void CBC_QRCoderVersion::Initialize() { - VERSION = new CFX_ArrayTemplate(); + VERSION = new std::vector(); } void CBC_QRCoderVersion::Finalize() { - for (int32_t i = 0; i < VERSION->GetSize(); i++) - delete VERSION->GetAt(i); + for (size_t i = 0; i < VERSION->size(); i++) + delete (*VERSION)[i]; delete VERSION; VERSION = nullptr; @@ -72,14 +72,14 @@ CBC_QRCoderVersion::CBC_QRCoderVersion(int32_t versionNumber, CBC_QRCoderECBlocks* ecBlocks3, CBC_QRCoderECBlocks* ecBlocks4) { m_versionNumber = versionNumber; - m_ecBlocksArray.Add(ecBlocks1); - m_ecBlocksArray.Add(ecBlocks2); - m_ecBlocksArray.Add(ecBlocks3); - m_ecBlocksArray.Add(ecBlocks4); + m_ecBlocksArray.push_back(ecBlocks1); + m_ecBlocksArray.push_back(ecBlocks2); + m_ecBlocksArray.push_back(ecBlocks3); + m_ecBlocksArray.push_back(ecBlocks4); int32_t total = 0; int32_t ecCodeWords = ecBlocks1->GetECCodeWordsPerBlock(); - CFX_ArrayTemplate* ecbArray = ecBlocks1->GetECBlocks(); - for (int32_t i = 0; i < ecbArray->GetSize(); i++) { + std::vector* ecbArray = ecBlocks1->GetECBlocks(); + for (size_t i = 0; i < ecbArray->size(); i++) { CBC_QRCoderECB* ecBlock = (*ecbArray)[i]; total += ecBlock->GetCount() * (ecBlock->GetDataCodeWords() + ecCodeWords); } @@ -88,273 +88,273 @@ CBC_QRCoderVersion::CBC_QRCoderVersion(int32_t versionNumber, case 1: break; case 2: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(18); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(18); break; case 3: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(22); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(22); break; case 4: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(26); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(26); break; case 5: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(30); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(30); break; case 6: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(34); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(34); break; case 7: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(22); - m_alignmentPatternCenters.Add(38); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(22); + m_alignmentPatternCenters.push_back(38); break; case 8: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(24); - m_alignmentPatternCenters.Add(42); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(24); + m_alignmentPatternCenters.push_back(42); break; case 9: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(26); - m_alignmentPatternCenters.Add(46); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(26); + m_alignmentPatternCenters.push_back(46); break; case 10: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(28); - m_alignmentPatternCenters.Add(50); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(28); + m_alignmentPatternCenters.push_back(50); break; case 11: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(30); - m_alignmentPatternCenters.Add(54); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(30); + m_alignmentPatternCenters.push_back(54); break; case 12: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(32); - m_alignmentPatternCenters.Add(58); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(32); + m_alignmentPatternCenters.push_back(58); break; case 13: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(34); - m_alignmentPatternCenters.Add(62); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(34); + m_alignmentPatternCenters.push_back(62); break; case 14: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(26); - m_alignmentPatternCenters.Add(46); - m_alignmentPatternCenters.Add(66); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(26); + m_alignmentPatternCenters.push_back(46); + m_alignmentPatternCenters.push_back(66); break; case 15: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(26); - m_alignmentPatternCenters.Add(48); - m_alignmentPatternCenters.Add(70); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(26); + m_alignmentPatternCenters.push_back(48); + m_alignmentPatternCenters.push_back(70); break; case 16: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(26); - m_alignmentPatternCenters.Add(50); - m_alignmentPatternCenters.Add(74); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(26); + m_alignmentPatternCenters.push_back(50); + m_alignmentPatternCenters.push_back(74); break; case 17: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(30); - m_alignmentPatternCenters.Add(54); - m_alignmentPatternCenters.Add(78); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(30); + m_alignmentPatternCenters.push_back(54); + m_alignmentPatternCenters.push_back(78); break; case 18: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(30); - m_alignmentPatternCenters.Add(56); - m_alignmentPatternCenters.Add(82); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(30); + m_alignmentPatternCenters.push_back(56); + m_alignmentPatternCenters.push_back(82); break; case 19: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(30); - m_alignmentPatternCenters.Add(58); - m_alignmentPatternCenters.Add(86); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(30); + m_alignmentPatternCenters.push_back(58); + m_alignmentPatternCenters.push_back(86); break; case 20: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(34); - m_alignmentPatternCenters.Add(62); - m_alignmentPatternCenters.Add(90); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(34); + m_alignmentPatternCenters.push_back(62); + m_alignmentPatternCenters.push_back(90); break; case 21: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(28); - m_alignmentPatternCenters.Add(50); - m_alignmentPatternCenters.Add(72); - m_alignmentPatternCenters.Add(94); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(28); + m_alignmentPatternCenters.push_back(50); + m_alignmentPatternCenters.push_back(72); + m_alignmentPatternCenters.push_back(94); break; case 22: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(26); - m_alignmentPatternCenters.Add(50); - m_alignmentPatternCenters.Add(74); - m_alignmentPatternCenters.Add(98); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(26); + m_alignmentPatternCenters.push_back(50); + m_alignmentPatternCenters.push_back(74); + m_alignmentPatternCenters.push_back(98); break; case 23: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(30); - m_alignmentPatternCenters.Add(54); - m_alignmentPatternCenters.Add(74); - m_alignmentPatternCenters.Add(102); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(30); + m_alignmentPatternCenters.push_back(54); + m_alignmentPatternCenters.push_back(74); + m_alignmentPatternCenters.push_back(102); break; case 24: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(28); - m_alignmentPatternCenters.Add(54); - m_alignmentPatternCenters.Add(80); - m_alignmentPatternCenters.Add(106); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(28); + m_alignmentPatternCenters.push_back(54); + m_alignmentPatternCenters.push_back(80); + m_alignmentPatternCenters.push_back(106); break; case 25: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(32); - m_alignmentPatternCenters.Add(58); - m_alignmentPatternCenters.Add(84); - m_alignmentPatternCenters.Add(110); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(32); + m_alignmentPatternCenters.push_back(58); + m_alignmentPatternCenters.push_back(84); + m_alignmentPatternCenters.push_back(110); break; case 26: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(30); - m_alignmentPatternCenters.Add(58); - m_alignmentPatternCenters.Add(86); - m_alignmentPatternCenters.Add(114); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(30); + m_alignmentPatternCenters.push_back(58); + m_alignmentPatternCenters.push_back(86); + m_alignmentPatternCenters.push_back(114); break; case 27: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(34); - m_alignmentPatternCenters.Add(62); - m_alignmentPatternCenters.Add(90); - m_alignmentPatternCenters.Add(118); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(34); + m_alignmentPatternCenters.push_back(62); + m_alignmentPatternCenters.push_back(90); + m_alignmentPatternCenters.push_back(118); break; case 28: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(26); - m_alignmentPatternCenters.Add(50); - m_alignmentPatternCenters.Add(74); - m_alignmentPatternCenters.Add(98); - m_alignmentPatternCenters.Add(122); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(26); + m_alignmentPatternCenters.push_back(50); + m_alignmentPatternCenters.push_back(74); + m_alignmentPatternCenters.push_back(98); + m_alignmentPatternCenters.push_back(122); break; case 29: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(30); - m_alignmentPatternCenters.Add(54); - m_alignmentPatternCenters.Add(78); - m_alignmentPatternCenters.Add(102); - m_alignmentPatternCenters.Add(126); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(30); + m_alignmentPatternCenters.push_back(54); + m_alignmentPatternCenters.push_back(78); + m_alignmentPatternCenters.push_back(102); + m_alignmentPatternCenters.push_back(126); break; case 30: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(26); - m_alignmentPatternCenters.Add(52); - m_alignmentPatternCenters.Add(78); - m_alignmentPatternCenters.Add(104); - m_alignmentPatternCenters.Add(130); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(26); + m_alignmentPatternCenters.push_back(52); + m_alignmentPatternCenters.push_back(78); + m_alignmentPatternCenters.push_back(104); + m_alignmentPatternCenters.push_back(130); break; case 31: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(30); - m_alignmentPatternCenters.Add(56); - m_alignmentPatternCenters.Add(82); - m_alignmentPatternCenters.Add(108); - m_alignmentPatternCenters.Add(134); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(30); + m_alignmentPatternCenters.push_back(56); + m_alignmentPatternCenters.push_back(82); + m_alignmentPatternCenters.push_back(108); + m_alignmentPatternCenters.push_back(134); break; case 32: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(34); - m_alignmentPatternCenters.Add(60); - m_alignmentPatternCenters.Add(86); - m_alignmentPatternCenters.Add(112); - m_alignmentPatternCenters.Add(138); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(34); + m_alignmentPatternCenters.push_back(60); + m_alignmentPatternCenters.push_back(86); + m_alignmentPatternCenters.push_back(112); + m_alignmentPatternCenters.push_back(138); break; case 33: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(30); - m_alignmentPatternCenters.Add(58); - m_alignmentPatternCenters.Add(86); - m_alignmentPatternCenters.Add(114); - m_alignmentPatternCenters.Add(142); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(30); + m_alignmentPatternCenters.push_back(58); + m_alignmentPatternCenters.push_back(86); + m_alignmentPatternCenters.push_back(114); + m_alignmentPatternCenters.push_back(142); break; case 34: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(34); - m_alignmentPatternCenters.Add(62); - m_alignmentPatternCenters.Add(90); - m_alignmentPatternCenters.Add(118); - m_alignmentPatternCenters.Add(146); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(34); + m_alignmentPatternCenters.push_back(62); + m_alignmentPatternCenters.push_back(90); + m_alignmentPatternCenters.push_back(118); + m_alignmentPatternCenters.push_back(146); break; case 35: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(30); - m_alignmentPatternCenters.Add(54); - m_alignmentPatternCenters.Add(78); - m_alignmentPatternCenters.Add(102); - m_alignmentPatternCenters.Add(126); - m_alignmentPatternCenters.Add(150); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(30); + m_alignmentPatternCenters.push_back(54); + m_alignmentPatternCenters.push_back(78); + m_alignmentPatternCenters.push_back(102); + m_alignmentPatternCenters.push_back(126); + m_alignmentPatternCenters.push_back(150); break; case 36: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(24); - m_alignmentPatternCenters.Add(50); - m_alignmentPatternCenters.Add(76); - m_alignmentPatternCenters.Add(102); - m_alignmentPatternCenters.Add(128); - m_alignmentPatternCenters.Add(154); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(24); + m_alignmentPatternCenters.push_back(50); + m_alignmentPatternCenters.push_back(76); + m_alignmentPatternCenters.push_back(102); + m_alignmentPatternCenters.push_back(128); + m_alignmentPatternCenters.push_back(154); break; case 37: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(28); - m_alignmentPatternCenters.Add(54); - m_alignmentPatternCenters.Add(80); - m_alignmentPatternCenters.Add(106); - m_alignmentPatternCenters.Add(132); - m_alignmentPatternCenters.Add(158); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(28); + m_alignmentPatternCenters.push_back(54); + m_alignmentPatternCenters.push_back(80); + m_alignmentPatternCenters.push_back(106); + m_alignmentPatternCenters.push_back(132); + m_alignmentPatternCenters.push_back(158); break; case 38: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(32); - m_alignmentPatternCenters.Add(58); - m_alignmentPatternCenters.Add(84); - m_alignmentPatternCenters.Add(110); - m_alignmentPatternCenters.Add(136); - m_alignmentPatternCenters.Add(162); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(32); + m_alignmentPatternCenters.push_back(58); + m_alignmentPatternCenters.push_back(84); + m_alignmentPatternCenters.push_back(110); + m_alignmentPatternCenters.push_back(136); + m_alignmentPatternCenters.push_back(162); break; case 39: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(26); - m_alignmentPatternCenters.Add(54); - m_alignmentPatternCenters.Add(82); - m_alignmentPatternCenters.Add(110); - m_alignmentPatternCenters.Add(138); - m_alignmentPatternCenters.Add(166); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(26); + m_alignmentPatternCenters.push_back(54); + m_alignmentPatternCenters.push_back(82); + m_alignmentPatternCenters.push_back(110); + m_alignmentPatternCenters.push_back(138); + m_alignmentPatternCenters.push_back(166); break; case 40: - m_alignmentPatternCenters.Add(6); - m_alignmentPatternCenters.Add(30); - m_alignmentPatternCenters.Add(58); - m_alignmentPatternCenters.Add(86); - m_alignmentPatternCenters.Add(114); - m_alignmentPatternCenters.Add(142); - m_alignmentPatternCenters.Add(170); + m_alignmentPatternCenters.push_back(6); + m_alignmentPatternCenters.push_back(30); + m_alignmentPatternCenters.push_back(58); + m_alignmentPatternCenters.push_back(86); + m_alignmentPatternCenters.push_back(114); + m_alignmentPatternCenters.push_back(142); + m_alignmentPatternCenters.push_back(170); break; } } CBC_QRCoderVersion::~CBC_QRCoderVersion() { - for (int32_t i = 0; i < m_ecBlocksArray.GetSize(); ++i) + for (size_t i = 0; i < m_ecBlocksArray.size(); ++i) delete m_ecBlocksArray[i]; } int32_t CBC_QRCoderVersion::GetVersionNumber() { return m_versionNumber; } -CFX_ArrayTemplate* CBC_QRCoderVersion::GetAlignmentPatternCenters() { +std::vector* CBC_QRCoderVersion::GetAlignmentPatternCenters() { return &m_alignmentPatternCenters; } int32_t CBC_QRCoderVersion::GetTotalCodeWords() { @@ -419,10 +419,10 @@ CBC_CommonBitMatrix* CBC_QRCoderVersion::BuildFunctionPattern(int32_t& e) { bitMatrix->SetRegion(0, dimension - 8, 9, 8, e); if (e != BCExceptionNO) return nullptr; - int32_t max = m_alignmentPatternCenters.GetSize(); - for (int32_t x = 0; x < max; x++) { + size_t max = m_alignmentPatternCenters.size(); + for (size_t x = 0; x < max; x++) { int32_t i = m_alignmentPatternCenters[x] - 2; - for (int32_t y = 0; y < max; y++) { + for (size_t y = 0; y < max; y++) { if ((x == 0 && (y == 0 || y == max - 1)) || (x == max - 1 && y == 0)) { continue; } @@ -450,47 +450,47 @@ CBC_CommonBitMatrix* CBC_QRCoderVersion::BuildFunctionPattern(int32_t& e) { CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( int32_t versionNumber, int32_t& e) { - if (VERSION->GetSize() == 0) { - VERSION->Add(new CBC_QRCoderVersion( + if (VERSION->empty()) { + VERSION->push_back(new CBC_QRCoderVersion( 1, new CBC_QRCoderECBlocks(7, new CBC_QRCoderECB(1, 19)), new CBC_QRCoderECBlocks(10, new CBC_QRCoderECB(1, 16)), new CBC_QRCoderECBlocks(13, new CBC_QRCoderECB(1, 13)), new CBC_QRCoderECBlocks(17, new CBC_QRCoderECB(1, 9)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 2, new CBC_QRCoderECBlocks(10, new CBC_QRCoderECB(1, 34)), new CBC_QRCoderECBlocks(16, new CBC_QRCoderECB(1, 28)), new CBC_QRCoderECBlocks(22, new CBC_QRCoderECB(1, 22)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(1, 16)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 3, new CBC_QRCoderECBlocks(15, new CBC_QRCoderECB(1, 55)), new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(1, 44)), new CBC_QRCoderECBlocks(18, new CBC_QRCoderECB(2, 17)), new CBC_QRCoderECBlocks(22, new CBC_QRCoderECB(2, 13)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 4, new CBC_QRCoderECBlocks(20, new CBC_QRCoderECB(1, 80)), new CBC_QRCoderECBlocks(18, new CBC_QRCoderECB(2, 32)), new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(2, 24)), new CBC_QRCoderECBlocks(16, new CBC_QRCoderECB(4, 9)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 5, new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(1, 108)), new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(2, 43)), new CBC_QRCoderECBlocks(18, new CBC_QRCoderECB(2, 15), new CBC_QRCoderECB(2, 16)), new CBC_QRCoderECBlocks(22, new CBC_QRCoderECB(2, 11), new CBC_QRCoderECB(2, 12)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 6, new CBC_QRCoderECBlocks(18, new CBC_QRCoderECB(2, 68)), new CBC_QRCoderECBlocks(16, new CBC_QRCoderECB(4, 27)), new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(4, 19)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(4, 15)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 7, new CBC_QRCoderECBlocks(20, new CBC_QRCoderECB(2, 78)), new CBC_QRCoderECBlocks(18, new CBC_QRCoderECB(4, 31)), new CBC_QRCoderECBlocks(18, new CBC_QRCoderECB(2, 14), new CBC_QRCoderECB(4, 15)), new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(4, 13), new CBC_QRCoderECB(1, 14)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 8, new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(2, 97)), new CBC_QRCoderECBlocks(22, new CBC_QRCoderECB(2, 38), new CBC_QRCoderECB(2, 39)), @@ -498,7 +498,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(2, 19)), new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(4, 14), new CBC_QRCoderECB(2, 15)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 9, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(2, 116)), new CBC_QRCoderECBlocks(22, new CBC_QRCoderECB(3, 36), new CBC_QRCoderECB(2, 37)), @@ -506,7 +506,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(4, 17)), new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(4, 12), new CBC_QRCoderECB(4, 13)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 10, new CBC_QRCoderECBlocks(18, new CBC_QRCoderECB(2, 68), new CBC_QRCoderECB(2, 69)), new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(4, 43), @@ -515,7 +515,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(2, 20)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(6, 15), new CBC_QRCoderECB(2, 16)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 11, new CBC_QRCoderECBlocks(20, new CBC_QRCoderECB(4, 81)), new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(1, 50), new CBC_QRCoderECB(4, 51)), @@ -523,7 +523,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(4, 23)), new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(3, 12), new CBC_QRCoderECB(8, 13)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 12, new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(2, 92), new CBC_QRCoderECB(2, 93)), new CBC_QRCoderECBlocks(22, new CBC_QRCoderECB(6, 36), @@ -532,7 +532,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(6, 21)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(7, 14), new CBC_QRCoderECB(4, 15)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 13, new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(4, 107)), new CBC_QRCoderECBlocks(22, new CBC_QRCoderECB(8, 37), new CBC_QRCoderECB(1, 38)), @@ -540,7 +540,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(4, 21)), new CBC_QRCoderECBlocks(22, new CBC_QRCoderECB(12, 11), new CBC_QRCoderECB(4, 12)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 14, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(3, 115), new CBC_QRCoderECB(1, 116)), new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(4, 40), @@ -549,7 +549,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(5, 17)), new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(11, 12), new CBC_QRCoderECB(5, 13)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 15, new CBC_QRCoderECBlocks(22, new CBC_QRCoderECB(5, 87), new CBC_QRCoderECB(1, 88)), new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(5, 41), @@ -558,7 +558,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(7, 25)), new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(11, 12), new CBC_QRCoderECB(7, 13)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 16, new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(5, 98), new CBC_QRCoderECB(1, 99)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(7, 45), @@ -567,7 +567,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(2, 20)), new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(3, 15), new CBC_QRCoderECB(13, 16)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 17, new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(1, 107), new CBC_QRCoderECB(5, 108)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(10, 46), @@ -576,7 +576,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(15, 23)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(2, 14), new CBC_QRCoderECB(17, 15)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 18, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(5, 120), new CBC_QRCoderECB(1, 121)), new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(9, 43), @@ -585,7 +585,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(1, 23)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(2, 14), new CBC_QRCoderECB(19, 15)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 19, new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(3, 113), new CBC_QRCoderECB(4, 114)), new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(3, 44), @@ -594,7 +594,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(4, 22)), new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(9, 13), new CBC_QRCoderECB(16, 14)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 20, new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(3, 107), new CBC_QRCoderECB(5, 108)), new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(3, 41), @@ -603,7 +603,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(5, 25)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(15, 15), new CBC_QRCoderECB(10, 16)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 21, new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(4, 116), new CBC_QRCoderECB(4, 117)), new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(17, 42)), @@ -611,14 +611,14 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(6, 23)), new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(19, 16), new CBC_QRCoderECB(6, 17)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 22, new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(2, 111), new CBC_QRCoderECB(7, 112)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(17, 46)), new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(7, 24), new CBC_QRCoderECB(16, 25)), new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(34, 13)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 23, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(4, 121), new CBC_QRCoderECB(5, 122)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(4, 47), @@ -627,7 +627,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(14, 25)), new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(16, 15), new CBC_QRCoderECB(14, 16)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 24, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(6, 117), new CBC_QRCoderECB(4, 118)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(6, 45), @@ -636,7 +636,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(16, 25)), new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(30, 16), new CBC_QRCoderECB(2, 17)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 25, new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(8, 106), new CBC_QRCoderECB(4, 107)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(8, 47), @@ -645,7 +645,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(22, 25)), new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(22, 15), new CBC_QRCoderECB(13, 16)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 26, new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(10, 114), new CBC_QRCoderECB(2, 115)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(19, 46), @@ -654,7 +654,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(6, 23)), new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(33, 16), new CBC_QRCoderECB(4, 17)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 27, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(8, 122), new CBC_QRCoderECB(4, 123)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(22, 45), @@ -663,7 +663,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(26, 24)), new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(12, 15), new CBC_QRCoderECB(28, 16)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 28, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(3, 117), new CBC_QRCoderECB(10, 118)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(3, 45), @@ -672,7 +672,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(31, 25)), new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(11, 15), new CBC_QRCoderECB(31, 16)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 29, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(7, 116), new CBC_QRCoderECB(7, 117)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(21, 45), @@ -681,7 +681,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(37, 24)), new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(19, 15), new CBC_QRCoderECB(26, 16)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 30, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(5, 115), new CBC_QRCoderECB(10, 116)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(19, 47), @@ -690,7 +690,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(25, 25)), new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(23, 15), new CBC_QRCoderECB(25, 16)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 31, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(13, 115), new CBC_QRCoderECB(3, 116)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(2, 46), @@ -699,7 +699,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(1, 25)), new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(23, 15), new CBC_QRCoderECB(28, 16)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 32, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(17, 115)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(10, 46), new CBC_QRCoderECB(23, 47)), @@ -707,7 +707,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(35, 25)), new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(19, 15), new CBC_QRCoderECB(35, 16)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 33, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(17, 115), new CBC_QRCoderECB(1, 116)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(14, 46), @@ -716,7 +716,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(19, 25)), new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(11, 15), new CBC_QRCoderECB(46, 16)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 34, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(13, 115), new CBC_QRCoderECB(6, 116)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(14, 46), @@ -725,7 +725,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(7, 25)), new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(59, 16), new CBC_QRCoderECB(1, 17)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 35, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(12, 121), new CBC_QRCoderECB(7, 122)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(12, 47), @@ -734,7 +734,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(14, 25)), new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(22, 15), new CBC_QRCoderECB(41, 16)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 36, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(6, 121), new CBC_QRCoderECB(14, 122)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(6, 47), @@ -743,7 +743,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(10, 25)), new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(2, 15), new CBC_QRCoderECB(64, 16)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 37, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(17, 122), new CBC_QRCoderECB(4, 123)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(29, 46), @@ -752,7 +752,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(10, 25)), new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(24, 15), new CBC_QRCoderECB(46, 16)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 38, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(4, 122), new CBC_QRCoderECB(18, 123)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(13, 46), @@ -761,7 +761,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(14, 25)), new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(42, 15), new CBC_QRCoderECB(32, 16)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 39, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(20, 117), new CBC_QRCoderECB(4, 118)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(40, 47), @@ -770,7 +770,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( new CBC_QRCoderECB(22, 25)), new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(10, 15), new CBC_QRCoderECB(67, 16)))); - VERSION->Add(new CBC_QRCoderVersion( + VERSION->push_back(new CBC_QRCoderVersion( 40, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(19, 118), new CBC_QRCoderECB(6, 119)), new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(18, 47), @@ -788,7 +788,7 @@ CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( } void CBC_QRCoderVersion::Destroy() { - for (int32_t i = 0; i < VERSION->GetSize(); i++) + for (size_t i = 0; i < VERSION->size(); i++) delete (*VERSION)[i]; - VERSION->RemoveAll(); + VERSION->clear(); } diff --git a/xfa/fxbarcode/qrcode/BC_QRCoderVersion.h b/xfa/fxbarcode/qrcode/BC_QRCoderVersion.h index 030dd512a0..853a93ed0c 100644 --- a/xfa/fxbarcode/qrcode/BC_QRCoderVersion.h +++ b/xfa/fxbarcode/qrcode/BC_QRCoderVersion.h @@ -7,6 +7,8 @@ #ifndef XFA_FXBARCODE_QRCODE_BC_QRCODERVERSION_H_ #define XFA_FXBARCODE_QRCODE_BC_QRCODERVERSION_H_ +#include + #include "core/fxcrt/fx_basic.h" class CBC_CommonBitMatrix; @@ -23,7 +25,7 @@ class CBC_QRCoderVersion { int32_t GetTotalCodeWords(); int32_t GetDimensionForVersion(); CBC_CommonBitMatrix* BuildFunctionPattern(int32_t& e); - CFX_ArrayTemplate* GetAlignmentPatternCenters(); + std::vector* GetAlignmentPatternCenters(); CBC_QRCoderECBlocks* GetECBlocksForLevel( CBC_QRCoderErrorCorrectionLevel* ecLevel); static CBC_QRCoderVersion* GetVersionForNumber(int32_t versionNumber, @@ -44,12 +46,12 @@ class CBC_QRCoderVersion { CBC_QRCoderECBlocks* ecBlocks4); static const int32_t VERSION_DECODE_INFO[34]; - static CFX_ArrayTemplate* VERSION; + static std::vector* VERSION; int32_t m_versionNumber; int32_t m_totalCodeWords; - CFX_ArrayTemplate m_alignmentPatternCenters; - CFX_ArrayTemplate m_ecBlocksArray; + std::vector m_alignmentPatternCenters; + std::vector m_ecBlocksArray; }; #endif // XFA_FXBARCODE_QRCODE_BC_QRCODERVERSION_H_ diff --git a/xfa/fxbarcode/utils.h b/xfa/fxbarcode/utils.h index 21ef3830ef..93a3c576cb 100644 --- a/xfa/fxbarcode/utils.h +++ b/xfa/fxbarcode/utils.h @@ -7,6 +7,8 @@ #ifndef XFA_FXBARCODE_UTILS_H_ #define XFA_FXBARCODE_UTILS_H_ +#include + #include "core/fxcrt/fx_basic.h" bool BC_FX_ByteString_Replace(CFX_ByteString& dst, @@ -16,7 +18,7 @@ bool BC_FX_ByteString_Replace(CFX_ByteString& dst, char c); void BC_FX_ByteString_Append(CFX_ByteString& dst, int32_t count, char c); void BC_FX_ByteString_Append(CFX_ByteString& dst, - const CFX_ArrayTemplate& ba); + const std::vector& ba); #if (_FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN64_) #include -- cgit v1.2.3