diff options
-rw-r--r-- | fxbarcode/common/BC_CommonBitMatrix.cpp | 32 | ||||
-rw-r--r-- | fxbarcode/common/BC_CommonBitMatrix.h | 10 | ||||
-rw-r--r-- | fxbarcode/pdf417/BC_PDF417BarcodeMatrix.cpp | 19 | ||||
-rw-r--r-- | fxbarcode/pdf417/BC_PDF417BarcodeMatrix.h | 9 | ||||
-rw-r--r-- | xfa/fwl/cfx_barcode.cpp | 29 |
5 files changed, 33 insertions, 66 deletions
diff --git a/fxbarcode/common/BC_CommonBitMatrix.cpp b/fxbarcode/common/BC_CommonBitMatrix.cpp index fe3546156e..6fe447db6f 100644 --- a/fxbarcode/common/BC_CommonBitMatrix.cpp +++ b/fxbarcode/common/BC_CommonBitMatrix.cpp @@ -20,9 +20,11 @@ * limitations under the License. */ -#include "fxbarcode/common/BC_CommonBitArray.h" #include "fxbarcode/common/BC_CommonBitMatrix.h" + +#include "fxbarcode/common/BC_CommonBitArray.h" #include "fxbarcode/utils.h" +#include "third_party/base/ptr_util.h" CBC_CommonBitMatrix::CBC_CommonBitMatrix() {} @@ -55,10 +57,6 @@ bool CBC_CommonBitMatrix::Get(int32_t x, int32_t y) const { return ((((uint32_t)m_bits[offset]) >> (x & 0x1f)) & 1) != 0; } -int32_t* CBC_CommonBitMatrix::GetBits() { - return m_bits; -} - void CBC_CommonBitMatrix::Set(int32_t x, int32_t y) { int32_t offset = y * m_rowSize + (x >> 5); if (offset >= m_rowSize * m_height || offset < 0) @@ -95,20 +93,6 @@ bool CBC_CommonBitMatrix::SetRegion(int32_t left, return true; } -CBC_CommonBitArray* CBC_CommonBitMatrix::GetRow(int32_t y, - CBC_CommonBitArray* row) { - CBC_CommonBitArray* rowArray = nullptr; - if (!row || static_cast<int32_t>(row->GetSize()) < m_width) { - rowArray = new CBC_CommonBitArray(m_width); - } else { - rowArray = new CBC_CommonBitArray(row); - } - int32_t offset = y * m_rowSize; - for (int32_t x = 0; x < m_rowSize; x++) - rowArray->SetBulk(x << 5, m_bits[offset + x]); - return rowArray; -} - void CBC_CommonBitMatrix::SetRow(int32_t y, CBC_CommonBitArray* row) { int32_t l = y * m_rowSize; for (int32_t i = 0; i < m_rowSize; i++) { @@ -121,13 +105,3 @@ void CBC_CommonBitMatrix::SetCol(int32_t y, CBC_CommonBitArray* col) { for (size_t i = 0; i < col->GetBits().size(); ++i) m_bits[i * m_rowSize + y] = col->GetBitArray()[i]; } - -int32_t CBC_CommonBitMatrix::GetWidth() const { - return m_width; -} -int32_t CBC_CommonBitMatrix::GetHeight() const { - return m_height; -} -int32_t CBC_CommonBitMatrix::GetRowSize() const { - return m_rowSize; -} diff --git a/fxbarcode/common/BC_CommonBitMatrix.h b/fxbarcode/common/BC_CommonBitMatrix.h index 744461903d..67c0f888cc 100644 --- a/fxbarcode/common/BC_CommonBitMatrix.h +++ b/fxbarcode/common/BC_CommonBitMatrix.h @@ -7,6 +7,8 @@ #ifndef FXBARCODE_COMMON_BC_COMMONBITMATRIX_H_ #define FXBARCODE_COMMON_BC_COMMONBITMATRIX_H_ +#include <memory> + #include "core/fxcrt/fx_system.h" class CBC_CommonBitArray; @@ -24,14 +26,12 @@ class CBC_CommonBitMatrix { void Flip(int32_t x, int32_t y); void Clear(); bool SetRegion(int32_t left, int32_t top, int32_t width, int32_t height); - CBC_CommonBitArray* GetRow(int32_t y, CBC_CommonBitArray* row); void SetRow(int32_t y, CBC_CommonBitArray* row); CBC_CommonBitArray* GetCol(int32_t y, CBC_CommonBitArray* row); void SetCol(int32_t y, CBC_CommonBitArray* col); - int32_t GetWidth() const; - int32_t GetHeight() const; - int32_t GetRowSize() const; - int32_t* GetBits(); + int32_t GetWidth() const { return m_width; } + int32_t GetHeight() const { return m_height; } + int32_t* GetBits() const { return m_bits; } private: int32_t m_width = 0; diff --git a/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.cpp b/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.cpp index 564d7ef0b1..ca492b3c19 100644 --- a/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.cpp +++ b/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.cpp @@ -22,11 +22,12 @@ #include "fxbarcode/pdf417/BC_PDF417BarcodeMatrix.h" #include "fxbarcode/pdf417/BC_PDF417BarcodeRow.h" +#include "third_party/base/ptr_util.h" CBC_BarcodeMatrix::CBC_BarcodeMatrix(int32_t height, int32_t width) { 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); + for (size_t i = 0; i < m_matrix.size(); ++i) + m_matrix[i] = pdfium::MakeUnique<CBC_BarcodeRow>((width + 4) * 17 + 1); m_width = width * 17; m_height = height + 2; @@ -35,10 +36,7 @@ CBC_BarcodeMatrix::CBC_BarcodeMatrix(int32_t height, int32_t width) { m_outWidth = 0; } -CBC_BarcodeMatrix::~CBC_BarcodeMatrix() { - for (size_t i = 0; i < m_matrix.size(); i++) - delete m_matrix[i]; -} +CBC_BarcodeMatrix::~CBC_BarcodeMatrix() {} void CBC_BarcodeMatrix::set(int32_t x, int32_t y, uint8_t value) { m_matrix[y]->set(x, value); @@ -49,15 +47,6 @@ void CBC_BarcodeMatrix::setMatrix(int32_t x, int32_t y, bool black) { void CBC_BarcodeMatrix::startRow() { ++m_currentRow; } -CBC_BarcodeRow* CBC_BarcodeMatrix::getCurrentRow() { - return m_matrix[m_currentRow]; -} -int32_t CBC_BarcodeMatrix::getWidth() { - return m_outWidth; -} -int32_t CBC_BarcodeMatrix::getHeight() { - return m_outHeight; -} std::vector<uint8_t>& CBC_BarcodeMatrix::getMatrix() { return getScaledMatrix(1, 1); } diff --git a/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.h b/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.h index 964048db9f..785633d150 100644 --- a/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.h +++ b/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.h @@ -7,6 +7,7 @@ #ifndef FXBARCODE_PDF417_BC_PDF417BARCODEMATRIX_H_ #define FXBARCODE_PDF417_BC_PDF417BARCODEMATRIX_H_ +#include <memory> #include <vector> #include "core/fxcrt/fx_basic.h" @@ -19,18 +20,18 @@ class CBC_BarcodeMatrix { CBC_BarcodeMatrix(int32_t height, int32_t width); virtual ~CBC_BarcodeMatrix(); + CBC_BarcodeRow* getCurrentRow() const { return m_matrix[m_currentRow].get(); } + int32_t getWidth() const { return m_outWidth; } + int32_t getHeight() const { return m_outHeight; } void set(int32_t x, int32_t y, uint8_t value); void setMatrix(int32_t x, int32_t y, bool black); void startRow(); - CBC_BarcodeRow* getCurrentRow(); std::vector<uint8_t>& getMatrix(); std::vector<uint8_t>& getScaledMatrix(int32_t scale); std::vector<uint8_t>& getScaledMatrix(int32_t xScale, int32_t yScale); - int32_t getWidth(); - int32_t getHeight(); private: - std::vector<CBC_BarcodeRow*> m_matrix; + std::vector<std::unique_ptr<CBC_BarcodeRow>> m_matrix; std::vector<uint8_t> m_matrixOut; int32_t m_currentRow; int32_t m_height; diff --git a/xfa/fwl/cfx_barcode.cpp b/xfa/fwl/cfx_barcode.cpp index e999d3a509..eeeac6164e 100644 --- a/xfa/fwl/cfx_barcode.cpp +++ b/xfa/fwl/cfx_barcode.cpp @@ -6,6 +6,8 @@ #include "xfa/fwl/cfx_barcode.h" +#include <memory> + #include "fxbarcode/cbc_codabar.h" #include "fxbarcode/cbc_code128.h" #include "fxbarcode/cbc_code39.h" @@ -17,33 +19,34 @@ #include "fxbarcode/cbc_qrcode.h" #include "fxbarcode/cbc_upca.h" #include "fxbarcode/utils.h" +#include "third_party/base/ptr_util.h" namespace { -CBC_CodeBase* CreateBarCodeEngineObject(BC_TYPE type) { +std::unique_ptr<CBC_CodeBase> CreateBarCodeEngineObject(BC_TYPE type) { switch (type) { case BC_CODE39: - return new CBC_Code39(); + return pdfium::MakeUnique<CBC_Code39>(); case BC_CODABAR: - return new CBC_Codabar(); + return pdfium::MakeUnique<CBC_Codabar>(); case BC_CODE128: - return new CBC_Code128(BC_CODE128_B); + return pdfium::MakeUnique<CBC_Code128>(BC_CODE128_B); case BC_CODE128_B: - return new CBC_Code128(BC_CODE128_B); + return pdfium::MakeUnique<CBC_Code128>(BC_CODE128_B); case BC_CODE128_C: - return new CBC_Code128(BC_CODE128_C); + return pdfium::MakeUnique<CBC_Code128>(BC_CODE128_C); case BC_EAN8: - return new CBC_EAN8(); + return pdfium::MakeUnique<CBC_EAN8>(); case BC_UPCA: - return new CBC_UPCA(); + return pdfium::MakeUnique<CBC_UPCA>(); case BC_EAN13: - return new CBC_EAN13(); + return pdfium::MakeUnique<CBC_EAN13>(); case BC_QR_CODE: - return new CBC_QRCode(); + return pdfium::MakeUnique<CBC_QRCode>(); case BC_PDF417: - return new CBC_PDF417I(); + return pdfium::MakeUnique<CBC_PDF417I>(); case BC_DATAMATRIX: - return new CBC_DataMatrix(); + return pdfium::MakeUnique<CBC_DataMatrix>(); case BC_UNKNOWN: default: return nullptr; @@ -57,7 +60,7 @@ CFX_Barcode::CFX_Barcode() {} CFX_Barcode::~CFX_Barcode() {} bool CFX_Barcode::Create(BC_TYPE type) { - m_pBCEngine.reset(CreateBarCodeEngineObject(type)); + m_pBCEngine = CreateBarCodeEngineObject(type); return !!m_pBCEngine; } |