| Index: xfa/fxbarcode/datamatrix/BC_DataMatrixDataBlock.cpp
|
| diff --git a/xfa/fxbarcode/datamatrix/BC_DataMatrixDataBlock.cpp b/xfa/fxbarcode/datamatrix/BC_DataMatrixDataBlock.cpp
|
| index 6b7680d1a8dc0d5662a7da6d75195fec0a6af823..a41e46afc92383cb970116d17183605a169bc03b 100644
|
| --- a/xfa/fxbarcode/datamatrix/BC_DataMatrixDataBlock.cpp
|
| +++ b/xfa/fxbarcode/datamatrix/BC_DataMatrixDataBlock.cpp
|
| @@ -40,17 +40,15 @@ CBC_DataMatrixDataBlock::GetDataBlocks(CFX_ByteArray* rawCodewords,
|
| ECBlocks* ecBlocks = version->GetECBlocks();
|
| int32_t totalBlocks = 0;
|
| const CFX_ArrayTemplate<ECB*>& ecBlockArray = ecBlocks->GetECBlocks();
|
| - int32_t i;
|
| - for (i = 0; i < ecBlockArray.GetSize(); i++) {
|
| + for (int32_t i = 0; i < ecBlockArray.GetSize(); i++) {
|
| totalBlocks += ecBlockArray[i]->GetCount();
|
| }
|
| std::unique_ptr<CFX_ArrayTemplate<CBC_DataMatrixDataBlock*>> result(
|
| new CFX_ArrayTemplate<CBC_DataMatrixDataBlock*>());
|
| result->SetSize(totalBlocks);
|
| int32_t numResultBlocks = 0;
|
| - int32_t j;
|
| - for (j = 0; j < ecBlockArray.GetSize(); j++) {
|
| - for (i = 0; i < ((ECB*)ecBlockArray[j])->GetCount(); i++) {
|
| + for (int32_t j = 0; j < ecBlockArray.GetSize(); j++) {
|
| + for (int32_t i = 0; i < ((ECB*)ecBlockArray[j])->GetCount(); i++) {
|
| int32_t numDataCodewords = ((ECB*)ecBlockArray[j])->GetDataCodewords();
|
| int32_t numBlockCodewords = ecBlocks->GetECCodewords() + numDataCodewords;
|
| CFX_ByteArray codewords;
|
| @@ -60,14 +58,11 @@ CBC_DataMatrixDataBlock::GetDataBlocks(CFX_ByteArray* rawCodewords,
|
| codewords.SetSize(0);
|
| }
|
| }
|
| - int32_t longerBlocksTotalCodewords = (*result)[0]->GetCodewords()->GetSize();
|
| int32_t longerBlocksNumDataCodewords =
|
| - longerBlocksTotalCodewords - ecBlocks->GetECCodewords();
|
| - int32_t shorterBlocksNumDataCodewords = longerBlocksNumDataCodewords - 1;
|
| + (*result)[0]->GetCodewords()->GetSize() - ecBlocks->GetECCodewords();
|
| int32_t rawCodewordsOffset = 0;
|
| - for (i = 0; i < shorterBlocksNumDataCodewords; i++) {
|
| - int32_t j;
|
| - for (j = 0; j < numResultBlocks; j++) {
|
| + for (int32_t i = 0; i < longerBlocksNumDataCodewords - 1; i++) {
|
| + for (int32_t j = 0; j < numResultBlocks; j++) {
|
| if (rawCodewordsOffset < rawCodewords->GetSize()) {
|
| (*result)[j]->GetCodewords()->operator[](i) =
|
| (*rawCodewords)[rawCodewordsOffset++];
|
| @@ -76,17 +71,16 @@ CBC_DataMatrixDataBlock::GetDataBlocks(CFX_ByteArray* rawCodewords,
|
| }
|
| const bool specialVersion = version->GetVersionNumber() == 24;
|
| int32_t numLongerBlocks = specialVersion ? 8 : numResultBlocks;
|
| - for (j = 0; j < numLongerBlocks; j++) {
|
| + for (int32_t j = 0; j < numLongerBlocks; j++) {
|
| if (rawCodewordsOffset < rawCodewords->GetSize()) {
|
| (*result)[j]->GetCodewords()->operator[](longerBlocksNumDataCodewords -
|
| 1) =
|
| (*rawCodewords)[rawCodewordsOffset++];
|
| }
|
| }
|
| - int32_t max = (*result)[0]->GetCodewords()->GetSize();
|
| - for (i = longerBlocksNumDataCodewords; i < max; i++) {
|
| - int32_t j;
|
| - for (j = 0; j < numResultBlocks; j++) {
|
| + for (int32_t i = longerBlocksNumDataCodewords;
|
| + i < (*result)[0]->GetCodewords()->GetSize(); i++) {
|
| + for (int32_t j = 0; j < numResultBlocks; j++) {
|
| int32_t iOffset = specialVersion && j > 7 ? i - 1 : i;
|
| if (rawCodewordsOffset < rawCodewords->GetSize()) {
|
| (*result)[j]->GetCodewords()->operator[](iOffset) =
|
| @@ -100,6 +94,7 @@ CBC_DataMatrixDataBlock::GetDataBlocks(CFX_ByteArray* rawCodewords,
|
| }
|
| return result.release();
|
| }
|
| +
|
| int32_t CBC_DataMatrixDataBlock::GetNumDataCodewords() {
|
| return m_numDataCodewords;
|
| }
|
|
|