summaryrefslogtreecommitdiff
path: root/fxbarcode/pdf417
diff options
context:
space:
mode:
Diffstat (limited to 'fxbarcode/pdf417')
-rw-r--r--fxbarcode/pdf417/BC_PDF417BarcodeMatrix.cpp19
-rw-r--r--fxbarcode/pdf417/BC_PDF417BarcodeMatrix.h9
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;