summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fxbarcode/common/BC_CommonBitMatrix.cpp32
-rw-r--r--fxbarcode/common/BC_CommonBitMatrix.h10
-rw-r--r--fxbarcode/pdf417/BC_PDF417BarcodeMatrix.cpp19
-rw-r--r--fxbarcode/pdf417/BC_PDF417BarcodeMatrix.h9
-rw-r--r--xfa/fwl/cfx_barcode.cpp29
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;
}