diff options
Diffstat (limited to 'fxbarcode/pdf417')
-rw-r--r-- | fxbarcode/pdf417/BC_PDF417BarcodeMatrix.cpp | 19 | ||||
-rw-r--r-- | fxbarcode/pdf417/BC_PDF417BarcodeMatrix.h | 9 |
2 files changed, 9 insertions, 19 deletions
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; |