Index: xfa/fxbarcode/cbc_qrcode.cpp |
diff --git a/xfa/fxbarcode/cbc_qrcode.cpp b/xfa/fxbarcode/cbc_qrcode.cpp |
index 6f93b4415e0532cd0c65f7491e1779f6eb26435d..9ea20a68207cc59d96373802ba58eea603af862e 100644 |
--- a/xfa/fxbarcode/cbc_qrcode.cpp |
+++ b/xfa/fxbarcode/cbc_qrcode.cpp |
@@ -27,31 +27,27 @@ |
#include "xfa/fxbarcode/qrcode/BC_QRCodeReader.h" |
#include "xfa/fxbarcode/qrcode/BC_QRCodeWriter.h" |
-CBC_QRCode::CBC_QRCode() { |
- m_pBCReader = (CBC_Reader*)new (CBC_QRCodeReader); |
- ((CBC_QRCodeReader*)m_pBCReader)->Init(); |
- m_pBCWriter = (CBC_Writer*)new (CBC_QRCodeWriter); |
+CBC_QRCode::CBC_QRCode() |
+ : CBC_CodeBase(new CBC_QRCodeReader, new CBC_QRCodeWriter) { |
+ static_cast<CBC_QRCodeReader*>(m_pBCReader.get())->Init(); |
} |
-CBC_QRCode::~CBC_QRCode() { |
- delete (m_pBCReader); |
- delete (m_pBCWriter); |
-} |
+CBC_QRCode::~CBC_QRCode() {} |
FX_BOOL CBC_QRCode::SetVersion(int32_t version) { |
if (version < 0 || version > 40) |
return FALSE; |
- if (!m_pBCWriter) |
- return FALSE; |
- return ((CBC_QRCodeWriter*)m_pBCWriter)->SetVersion(version); |
+ return m_pBCWriter && |
+ static_cast<CBC_QRCodeWriter*>(m_pBCWriter.get())->SetVersion(version); |
} |
FX_BOOL CBC_QRCode::SetErrorCorrectionLevel(int32_t level) { |
if (level < 0 || level > 3) |
return FALSE; |
- if (!m_pBCWriter) |
- return FALSE; |
- return ((CBC_TwoDimWriter*)m_pBCWriter)->SetErrorCorrectionLevel(level); |
+ |
+ return m_pBCWriter && |
+ static_cast<CBC_TwoDimWriter*>(m_pBCWriter.get()) |
+ ->SetErrorCorrectionLevel(level); |
} |
FX_BOOL CBC_QRCode::Encode(const CFX_WideStringC& contents, |
@@ -59,13 +55,12 @@ FX_BOOL CBC_QRCode::Encode(const CFX_WideStringC& contents, |
int32_t& e) { |
int32_t outWidth = 0; |
int32_t outHeight = 0; |
- uint8_t* data = |
- ((CBC_QRCodeWriter*)m_pBCWriter) |
- ->Encode(CFX_WideString(contents), |
- ((CBC_QRCodeWriter*)m_pBCWriter)->GetErrorCorrectionLevel(), |
- outWidth, outHeight, e); |
+ CBC_QRCodeWriter* pWriter = static_cast<CBC_QRCodeWriter*>(m_pBCWriter.get()); |
+ uint8_t* data = pWriter->Encode(CFX_WideString(contents), |
+ pWriter->GetErrorCorrectionLevel(), outWidth, |
+ outHeight, e); |
BC_EXCEPTION_CHECK_ReturnValue(e, FALSE); |
- ((CBC_TwoDimWriter*)m_pBCWriter)->RenderResult(data, outWidth, outHeight, e); |
+ pWriter->RenderResult(data, outWidth, outHeight, e); |
FX_Free(data); |
BC_EXCEPTION_CHECK_ReturnValue(e, FALSE); |
return TRUE; |
@@ -74,12 +69,14 @@ FX_BOOL CBC_QRCode::Encode(const CFX_WideStringC& contents, |
FX_BOOL CBC_QRCode::RenderDevice(CFX_RenderDevice* device, |
const CFX_Matrix* matrix, |
int32_t& e) { |
- ((CBC_TwoDimWriter*)m_pBCWriter)->RenderDeviceResult(device, matrix); |
+ static_cast<CBC_TwoDimWriter*>(m_pBCWriter.get()) |
+ ->RenderDeviceResult(device, matrix); |
return TRUE; |
} |
FX_BOOL CBC_QRCode::RenderBitmap(CFX_DIBitmap*& pOutBitmap, int32_t& e) { |
- ((CBC_TwoDimWriter*)m_pBCWriter)->RenderBitmapResult(pOutBitmap, e); |
+ static_cast<CBC_TwoDimWriter*>(m_pBCWriter.get()) |
+ ->RenderBitmapResult(pOutBitmap, e); |
BC_EXCEPTION_CHECK_ReturnValue(e, FALSE); |
return TRUE; |
} |