| Index: xfa/fxbarcode/qrcode/BC_QRDataBlock.cpp
|
| diff --git a/xfa/fxbarcode/qrcode/BC_QRDataBlock.cpp b/xfa/fxbarcode/qrcode/BC_QRDataBlock.cpp
|
| index 721301cccc06ec9b69757febc4745839506e20fa..31f0b1841d6642775b2cf50aa2f6e57bd85ae44e 100644
|
| --- a/xfa/fxbarcode/qrcode/BC_QRDataBlock.cpp
|
| +++ b/xfa/fxbarcode/qrcode/BC_QRDataBlock.cpp
|
| @@ -41,7 +41,7 @@ int32_t CBC_QRDataBlock::GetNumDataCodewords() {
|
| CFX_ByteArray* CBC_QRDataBlock::GetCodewords() {
|
| return m_codewords;
|
| }
|
| -CFX_PtrArray* CBC_QRDataBlock::GetDataBlocks(
|
| +CFX_ArrayTemplate<CBC_QRDataBlock*>* CBC_QRDataBlock::GetDataBlocks(
|
| CFX_ByteArray* rawCodewords,
|
| CBC_QRCoderVersion* version,
|
| CBC_QRCoderErrorCorrectionLevel* ecLevel,
|
| @@ -57,7 +57,8 @@ CFX_PtrArray* CBC_QRDataBlock::GetDataBlocks(
|
| for (i = 0; i < ecBlockArray->GetSize(); i++) {
|
| totalBlocks += (*ecBlockArray)[i]->GetCount();
|
| }
|
| - std::unique_ptr<CFX_PtrArray> result(new CFX_PtrArray());
|
| + std::unique_ptr<CFX_ArrayTemplate<CBC_QRDataBlock*>> result(
|
| + new CFX_ArrayTemplate<CBC_QRDataBlock*>());
|
| result->SetSize(totalBlocks);
|
| int32_t numResultBlocks = 0;
|
| for (int32_t j = 0; j < ecBlockArray->GetSize(); j++) {
|
| @@ -72,12 +73,11 @@ CFX_PtrArray* CBC_QRDataBlock::GetDataBlocks(
|
| new CBC_QRDataBlock(numDataCodewords, bytearray);
|
| }
|
| }
|
| - int32_t shorterBlocksTotalCodewords =
|
| - ((CBC_QRDataBlock*)(*result)[0])->m_codewords->GetSize();
|
| + int32_t shorterBlocksTotalCodewords = (*result)[0]->m_codewords->GetSize();
|
| int32_t longerBlocksStartAt = result->GetSize() - 1;
|
| while (longerBlocksStartAt >= 0) {
|
| - int32_t numCodewords = ((CBC_QRDataBlock*)(*result)[longerBlocksStartAt])
|
| - ->m_codewords->GetSize();
|
| + int32_t numCodewords =
|
| + (*result)[longerBlocksStartAt]->m_codewords->GetSize();
|
| if (numCodewords == shorterBlocksTotalCodewords) {
|
| break;
|
| }
|
| @@ -90,20 +90,18 @@ CFX_PtrArray* CBC_QRDataBlock::GetDataBlocks(
|
| int32_t x = 0;
|
| for (int32_t k = 0; k < shorterBlocksNumDataCodewords; k++) {
|
| for (x = 0; x < numResultBlocks; x++) {
|
| - (*(((CBC_QRDataBlock*)(*result)[x])->m_codewords))[k] =
|
| - (*rawCodewords)[rawCodewordsOffset++];
|
| + (*((*result)[x]->m_codewords))[k] = (*rawCodewords)[rawCodewordsOffset++];
|
| }
|
| }
|
| for (x = longerBlocksStartAt; x < numResultBlocks; x++) {
|
| - (*(((CBC_QRDataBlock*)(*result)[x])
|
| - ->m_codewords))[shorterBlocksNumDataCodewords] =
|
| + (*((*result)[x]->m_codewords))[shorterBlocksNumDataCodewords] =
|
| (*rawCodewords)[rawCodewordsOffset++];
|
| }
|
| - int32_t max = ((CBC_QRDataBlock*)(*result)[0])->m_codewords->GetSize();
|
| + int32_t max = (*result)[0]->m_codewords->GetSize();
|
| for (i = shorterBlocksNumDataCodewords; i < max; i++) {
|
| for (int32_t y = 0; y < numResultBlocks; y++) {
|
| int32_t iOffset = y < longerBlocksStartAt ? i : i + 1;
|
| - (*(((CBC_QRDataBlock*)(*result)[y])->m_codewords))[iOffset] =
|
| + (*((*result)[y]->m_codewords))[iOffset] =
|
| (*rawCodewords)[rawCodewordsOffset++];
|
| }
|
| }
|
|
|