summaryrefslogtreecommitdiff
path: root/xfa
diff options
context:
space:
mode:
Diffstat (limited to 'xfa')
-rw-r--r--xfa/fwl/cfwl_barcode.cpp4
-rw-r--r--xfa/fwl/cfx_barcode.cpp8
-rw-r--r--xfa/fwl/cfx_barcode.h5
-rw-r--r--xfa/fwl/cfx_barcode_unittest.cpp4
4 files changed, 11 insertions, 10 deletions
diff --git a/xfa/fwl/cfwl_barcode.cpp b/xfa/fwl/cfwl_barcode.cpp
index f5d6ea98b2..74ac7dd9c2 100644
--- a/xfa/fwl/cfwl_barcode.cpp
+++ b/xfa/fwl/cfwl_barcode.cpp
@@ -213,7 +213,5 @@ void CFWL_Barcode::CreateBarcodeEngine() {
if (m_pBarcodeEngine || m_type == BC_UNKNOWN)
return;
- auto pBarcode = pdfium::MakeUnique<CFX_Barcode>();
- if (pBarcode->Create(m_type))
- m_pBarcodeEngine = std::move(pBarcode);
+ m_pBarcodeEngine = CFX_Barcode::Create(m_type);
}
diff --git a/xfa/fwl/cfx_barcode.cpp b/xfa/fwl/cfx_barcode.cpp
index 9d667c67b9..2d1253630e 100644
--- a/xfa/fwl/cfx_barcode.cpp
+++ b/xfa/fwl/cfx_barcode.cpp
@@ -59,9 +59,11 @@ CFX_Barcode::CFX_Barcode() {}
CFX_Barcode::~CFX_Barcode() {}
-bool CFX_Barcode::Create(BC_TYPE type) {
- m_pBCEngine = CreateBarCodeEngineObject(type);
- return !!m_pBCEngine;
+std::unique_ptr<CFX_Barcode> CFX_Barcode::Create(BC_TYPE type) {
+ auto barcodeEngine = CreateBarCodeEngineObject(type);
+ std::unique_ptr<CFX_Barcode> barcode(new CFX_Barcode());
+ barcode->m_pBCEngine.swap(barcodeEngine);
+ return barcode;
}
BC_TYPE CFX_Barcode::GetType() {
diff --git a/xfa/fwl/cfx_barcode.h b/xfa/fwl/cfx_barcode.h
index eec4648e82..a5f0513241 100644
--- a/xfa/fwl/cfx_barcode.h
+++ b/xfa/fwl/cfx_barcode.h
@@ -22,10 +22,9 @@ class CFX_Matrix;
class CFX_Barcode {
public:
- CFX_Barcode();
~CFX_Barcode();
- bool Create(BC_TYPE type);
+ static std::unique_ptr<CFX_Barcode> Create(BC_TYPE type);
BC_TYPE GetType();
bool Encode(const WideStringView& contents);
@@ -56,6 +55,8 @@ class CFX_Barcode {
bool SetTruncated(bool truncated);
private:
+ CFX_Barcode();
+
std::unique_ptr<CBC_CodeBase> m_pBCEngine;
};
diff --git a/xfa/fwl/cfx_barcode_unittest.cpp b/xfa/fwl/cfx_barcode_unittest.cpp
index fe8aee4709..585d92f2db 100644
--- a/xfa/fwl/cfx_barcode_unittest.cpp
+++ b/xfa/fwl/cfx_barcode_unittest.cpp
@@ -20,7 +20,6 @@ class BarcodeTest : public testing::Test {
public:
void SetUp() override {
BC_Library_Init();
- barcode_ = pdfium::MakeUnique<CFX_Barcode>();
auto device = pdfium::MakeUnique<CFX_DefaultRenderDevice>();
auto bitmap = pdfium::MakeRetain<CFX_DIBitmap>();
@@ -41,7 +40,8 @@ class BarcodeTest : public testing::Test {
CFX_Barcode* barcode() const { return barcode_.get(); }
bool Create(BC_TYPE type) {
- if (!barcode_->Create(type))
+ barcode_ = CFX_Barcode::Create(type);
+ if (!barcode_)
return false;
barcode_->SetModuleHeight(300);