Index: xfa/fxbarcode/cbc_upca.cpp |
diff --git a/xfa/fxbarcode/cbc_upca.cpp b/xfa/fxbarcode/cbc_upca.cpp |
index 886525ab54b9940a2036b9e8e6be57f98dfc8f07..525612257aad979417fae3647f38f8e8cd8ed041 100644 |
--- a/xfa/fxbarcode/cbc_upca.cpp |
+++ b/xfa/fxbarcode/cbc_upca.cpp |
@@ -27,28 +27,24 @@ |
#include "xfa/fxbarcode/oned/BC_OnedUPCAReader.h" |
#include "xfa/fxbarcode/oned/BC_OnedUPCAWriter.h" |
-CBC_UPCA::CBC_UPCA() { |
- m_pBCReader = (CBC_Reader*)new (CBC_OnedUPCAReader); |
- ((CBC_OnedUPCAReader*)m_pBCReader)->Init(); |
- m_pBCWriter = (CBC_Writer*)new (CBC_OnedUPCAWriter); |
+CBC_UPCA::CBC_UPCA() |
+ : CBC_OneCode(new CBC_OnedUPCAReader, new CBC_OnedUPCAWriter) { |
+ static_cast<CBC_OnedUPCAReader*>(m_pBCReader.get())->Init(); |
} |
-CBC_UPCA::~CBC_UPCA() { |
- delete (m_pBCReader); |
- delete (m_pBCWriter); |
-} |
+CBC_UPCA::~CBC_UPCA() {} |
CFX_WideString CBC_UPCA::Preprocess(const CFX_WideStringC& contents) { |
- CFX_WideString encodeContents = |
- ((CBC_OnedUPCAWriter*)m_pBCWriter)->FilterContents(contents); |
+ CBC_OnedUPCAWriter* pWriter = |
+ static_cast<CBC_OnedUPCAWriter*>(m_pBCWriter.get()); |
+ CFX_WideString encodeContents = pWriter->FilterContents(contents); |
int32_t length = encodeContents.GetLength(); |
if (length <= 11) { |
for (int32_t i = 0; i < 11 - length; i++) |
encodeContents = FX_WCHAR('0') + encodeContents; |
CFX_ByteString byteString = encodeContents.UTF8Encode(); |
- int32_t checksum = |
- ((CBC_OnedUPCAWriter*)m_pBCWriter)->CalcChecksum(byteString); |
+ int32_t checksum = pWriter->CalcChecksum(byteString); |
byteString += checksum - 0 + '0'; |
encodeContents = byteString.UTF8Decode(); |
} |
@@ -71,12 +67,15 @@ FX_BOOL CBC_UPCA::Encode(const CFX_WideStringC& contents, |
CFX_WideString encodeContents = Preprocess(contents); |
CFX_ByteString byteString = encodeContents.UTF8Encode(); |
m_renderContents = encodeContents; |
- ((CBC_OnedUPCAWriter*)m_pBCWriter)->Init(); |
- uint8_t* data = static_cast<CBC_OnedUPCAWriter*>(m_pBCWriter) |
- ->Encode(byteString, format, outWidth, outHeight, e); |
+ |
+ CBC_OnedUPCAWriter* pWriter = |
+ static_cast<CBC_OnedUPCAWriter*>(m_pBCWriter.get()); |
+ |
+ pWriter->Init(); |
+ uint8_t* data = pWriter->Encode(byteString, format, outWidth, outHeight, e); |
BC_EXCEPTION_CHECK_ReturnValue(e, FALSE); |
- ((CBC_OneDimWriter*)m_pBCWriter) |
- ->RenderResult(encodeContents.AsStringC(), data, outWidth, isDevice, e); |
+ pWriter->RenderResult(encodeContents.AsStringC(), data, outWidth, isDevice, |
+ e); |
FX_Free(data); |
BC_EXCEPTION_CHECK_ReturnValue(e, FALSE); |
return TRUE; |
@@ -85,14 +84,14 @@ FX_BOOL CBC_UPCA::Encode(const CFX_WideStringC& contents, |
FX_BOOL CBC_UPCA::RenderDevice(CFX_RenderDevice* device, |
const CFX_Matrix* matrix, |
int32_t& e) { |
- ((CBC_OneDimWriter*)m_pBCWriter) |
+ static_cast<CBC_OneDimWriter*>(m_pBCWriter.get()) |
->RenderDeviceResult(device, matrix, m_renderContents.AsStringC(), e); |
BC_EXCEPTION_CHECK_ReturnValue(e, FALSE); |
return TRUE; |
} |
FX_BOOL CBC_UPCA::RenderBitmap(CFX_DIBitmap*& pOutBitmap, int32_t& e) { |
- ((CBC_OneDimWriter*)m_pBCWriter) |
+ static_cast<CBC_OneDimWriter*>(m_pBCWriter.get()) |
->RenderBitmapResult(pOutBitmap, m_renderContents.AsStringC(), e); |
BC_EXCEPTION_CHECK_ReturnValue(e, FALSE); |
return TRUE; |