summaryrefslogtreecommitdiff
path: root/xfa/fwl/cfx_barcode.cpp
diff options
context:
space:
mode:
authorRyan Harrison <rharrison@chromium.org>2018-01-26 17:11:51 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-01-26 17:11:51 +0000
commit4b9d69806c30775f55563e72b0842daa06483f99 (patch)
treede54ec0133b6ad5ee625060adbfb02c45a0b9c83 /xfa/fwl/cfx_barcode.cpp
parent49363202ce06ca9ff418b4df384cffadf924303c (diff)
downloadpdfium-4b9d69806c30775f55563e72b0842daa06483f99.tar.xz
Clean up construction of CFX_Barcode
Because certain enum values can cause the initialization of the class to fail there is a seperate init method from the constructor. This CL is converting the code to use a standard factory pattern for this, instead of the existing implementation. Change-Id: Ia2293ce94ad0db5862db9796aeb8a224fd2b45f9 Reviewed-on: https://pdfium-review.googlesource.com/24230 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Diffstat (limited to 'xfa/fwl/cfx_barcode.cpp')
-rw-r--r--xfa/fwl/cfx_barcode.cpp8
1 files changed, 5 insertions, 3 deletions
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() {