| Index: xfa/fxbarcode/qrcode/BC_QRCoderDecoder.cpp
|
| diff --git a/xfa/fxbarcode/qrcode/BC_QRCoderDecoder.cpp b/xfa/fxbarcode/qrcode/BC_QRCoderDecoder.cpp
|
| index 1966146805e90e26bb9319a53a6e5c8da6bd7c9a..360a69a0ecf18bc03910e74c68dd2f41ec755fde 100644
|
| --- a/xfa/fxbarcode/qrcode/BC_QRCoderDecoder.cpp
|
| +++ b/xfa/fxbarcode/qrcode/BC_QRCoderDecoder.cpp
|
| @@ -74,26 +74,24 @@ CBC_CommonDecoderResult* CBC_QRCoderDecoder::Decode(CBC_CommonBitMatrix* bits,
|
| CBC_QRCoderErrorCorrectionLevel* ecLevel = temp->GetErrorCorrectionLevel();
|
| std::unique_ptr<CFX_ByteArray> codewords(parser.ReadCodewords(e));
|
| BC_EXCEPTION_CHECK_ReturnValue(e, NULL);
|
| - CFX_PtrArray* dataBlocks =
|
| + CFX_ArrayTemplate<CBC_QRDataBlock*>* dataBlocks =
|
| CBC_QRDataBlock::GetDataBlocks(codewords.get(), version, ecLevel, e);
|
| BC_EXCEPTION_CHECK_ReturnValue(e, NULL);
|
| int32_t totalBytes = 0;
|
| for (int32_t i = 0; i < dataBlocks->GetSize(); i++) {
|
| - totalBytes += ((CBC_QRDataBlock*)((*dataBlocks)[i]))->GetNumDataCodewords();
|
| + totalBytes += (*dataBlocks)[i]->GetNumDataCodewords();
|
| }
|
| CFX_ByteArray resultBytes;
|
| for (int32_t j = 0; j < dataBlocks->GetSize(); j++) {
|
| - CBC_QRDataBlock* dataBlock = (CBC_QRDataBlock*)((*dataBlocks)[j]);
|
| + CBC_QRDataBlock* dataBlock = (*dataBlocks)[j];
|
| CFX_ByteArray* codewordBytes = dataBlock->GetCodewords();
|
| int32_t numDataCodewords = dataBlock->GetNumDataCodewords();
|
| CorrectErrors(codewordBytes, numDataCodewords, e);
|
| if (e != BCExceptionNO) {
|
| for (int32_t k = 0; k < dataBlocks->GetSize(); k++) {
|
| - delete (CBC_QRDataBlock*)(*dataBlocks)[k];
|
| + delete (*dataBlocks)[k];
|
| }
|
| - dataBlocks->RemoveAll();
|
| delete dataBlocks;
|
| - dataBlocks = NULL;
|
| return NULL;
|
| }
|
| for (int32_t i = 0; i < numDataCodewords; i++) {
|
| @@ -101,11 +99,9 @@ CBC_CommonDecoderResult* CBC_QRCoderDecoder::Decode(CBC_CommonBitMatrix* bits,
|
| }
|
| }
|
| for (int32_t k = 0; k < dataBlocks->GetSize(); k++) {
|
| - delete (CBC_QRDataBlock*)(*dataBlocks)[k];
|
| + delete (*dataBlocks)[k];
|
| }
|
| - dataBlocks->RemoveAll();
|
| delete dataBlocks;
|
| - dataBlocks = NULL;
|
| CBC_CommonDecoderResult* cdr = CBC_QRDecodedBitStreamParser::Decode(
|
| &resultBytes, version, ecLevel, byteModeDecode, e);
|
| BC_EXCEPTION_CHECK_ReturnValue(e, NULL);
|
|
|