| Index: xfa/fxbarcode/pdf417/BC_PDF417ScanningDecoder.cpp
|
| diff --git a/xfa/fxbarcode/pdf417/BC_PDF417ScanningDecoder.cpp b/xfa/fxbarcode/pdf417/BC_PDF417ScanningDecoder.cpp
|
| index 4e1d8dd1e9ceaaaa4555433dacada067d78473c4..a6e882b1cb14b0f0c58f070b3a4fda41a7ceed0a 100644
|
| --- a/xfa/fxbarcode/pdf417/BC_PDF417ScanningDecoder.cpp
|
| +++ b/xfa/fxbarcode/pdf417/BC_PDF417ScanningDecoder.cpp
|
| @@ -46,7 +46,8 @@
|
| int32_t CBC_PDF417ScanningDecoder::CODEWORD_SKEW_SIZE = 2;
|
| int32_t CBC_PDF417ScanningDecoder::MAX_ERRORS = 3;
|
| int32_t CBC_PDF417ScanningDecoder::MAX_EC_CODEWORDS = 512;
|
| -CBC_PDF417ECErrorCorrection* CBC_PDF417ScanningDecoder::errorCorrection = NULL;
|
| +CBC_PDF417ECErrorCorrection* CBC_PDF417ScanningDecoder::errorCorrection =
|
| + nullptr;
|
|
|
| CBC_PDF417ScanningDecoder::CBC_PDF417ScanningDecoder() {}
|
| CBC_PDF417ScanningDecoder::~CBC_PDF417ScanningDecoder() {}
|
| @@ -67,10 +68,10 @@ CBC_CommonDecoderResult* CBC_PDF417ScanningDecoder::decode(
|
| int32_t& e) {
|
| CBC_BoundingBox* boundingBox = new CBC_BoundingBox(
|
| image, imageTopLeft, imageBottomLeft, imageTopRight, imageBottomRight, e);
|
| - BC_EXCEPTION_CHECK_ReturnValue(e, NULL);
|
| - CBC_DetectionResultRowIndicatorColumn* leftRowIndicatorColumn = NULL;
|
| - CBC_DetectionResultRowIndicatorColumn* rightRowIndicatorColumn = NULL;
|
| - CBC_DetectionResult* detectionResult = NULL;
|
| + BC_EXCEPTION_CHECK_ReturnValue(e, nullptr);
|
| + CBC_DetectionResultRowIndicatorColumn* leftRowIndicatorColumn = nullptr;
|
| + CBC_DetectionResultRowIndicatorColumn* rightRowIndicatorColumn = nullptr;
|
| + CBC_DetectionResult* detectionResult = nullptr;
|
| for (int32_t i = 0; i < 2; i++) {
|
| if (imageTopLeft) {
|
| leftRowIndicatorColumn =
|
| @@ -88,7 +89,7 @@ CBC_CommonDecoderResult* CBC_PDF417ScanningDecoder::decode(
|
| delete leftRowIndicatorColumn;
|
| delete rightRowIndicatorColumn;
|
| delete boundingBox;
|
| - return NULL;
|
| + return nullptr;
|
| }
|
| if (i == 0 && (detectionResult->getBoundingBox()->getMinY() <
|
| boundingBox->getMinY() ||
|
| @@ -105,7 +106,7 @@ CBC_CommonDecoderResult* CBC_PDF417ScanningDecoder::decode(
|
| detectionResult->setDetectionResultColumn(0, leftRowIndicatorColumn);
|
| detectionResult->setDetectionResultColumn(maxBarcodeColumn,
|
| rightRowIndicatorColumn);
|
| - FX_BOOL leftToRight = leftRowIndicatorColumn != NULL;
|
| + FX_BOOL leftToRight = !!leftRowIndicatorColumn;
|
| for (int32_t barcodeColumnCount = 1; barcodeColumnCount <= maxBarcodeColumn;
|
| barcodeColumnCount++) {
|
| int32_t barcodeColumn = leftToRight ? barcodeColumnCount
|
| @@ -113,7 +114,7 @@ CBC_CommonDecoderResult* CBC_PDF417ScanningDecoder::decode(
|
| if (detectionResult->getDetectionResultColumn(barcodeColumn)) {
|
| continue;
|
| }
|
| - CBC_DetectionResultColumn* detectionResultColumn = NULL;
|
| + CBC_DetectionResultColumn* detectionResultColumn = nullptr;
|
| if (barcodeColumn == 0 || barcodeColumn == maxBarcodeColumn) {
|
| detectionResultColumn = new CBC_DetectionResultRowIndicatorColumn(
|
| boundingBox, barcodeColumn == 0);
|
| @@ -153,7 +154,7 @@ CBC_CommonDecoderResult* CBC_PDF417ScanningDecoder::decode(
|
| createDecoderResult(detectionResult, e);
|
| if (e != BCExceptionNO) {
|
| delete detectionResult;
|
| - return NULL;
|
| + return nullptr;
|
| }
|
| return decoderresult;
|
| }
|
| @@ -181,33 +182,33 @@ CBC_DetectionResult* CBC_PDF417ScanningDecoder::merge(
|
| CBC_DetectionResultRowIndicatorColumn* leftRowIndicatorColumn,
|
| CBC_DetectionResultRowIndicatorColumn* rightRowIndicatorColumn,
|
| int32_t& e) {
|
| - if (leftRowIndicatorColumn == NULL && rightRowIndicatorColumn == NULL) {
|
| + if (!leftRowIndicatorColumn && !rightRowIndicatorColumn) {
|
| e = BCExceptionIllegalArgument;
|
| - return NULL;
|
| + return nullptr;
|
| }
|
| CBC_BarcodeMetadata* barcodeMetadata =
|
| getBarcodeMetadata(leftRowIndicatorColumn, rightRowIndicatorColumn);
|
| - if (barcodeMetadata == NULL) {
|
| + if (!barcodeMetadata) {
|
| e = BCExceptionCannotMetadata;
|
| - return NULL;
|
| + return nullptr;
|
| }
|
| CBC_BoundingBox* leftboundingBox =
|
| adjustBoundingBox(leftRowIndicatorColumn, e);
|
| if (e != BCExceptionNO) {
|
| delete barcodeMetadata;
|
| - return NULL;
|
| + return nullptr;
|
| }
|
| CBC_BoundingBox* rightboundingBox =
|
| adjustBoundingBox(rightRowIndicatorColumn, e);
|
| if (e != BCExceptionNO) {
|
| delete barcodeMetadata;
|
| - return NULL;
|
| + return nullptr;
|
| }
|
| CBC_BoundingBox* boundingBox =
|
| CBC_BoundingBox::merge(leftboundingBox, rightboundingBox, e);
|
| if (e != BCExceptionNO) {
|
| delete barcodeMetadata;
|
| - return NULL;
|
| + return nullptr;
|
| }
|
| CBC_DetectionResult* detectionresult =
|
| new CBC_DetectionResult(barcodeMetadata, boundingBox);
|
| @@ -216,11 +217,11 @@ CBC_DetectionResult* CBC_PDF417ScanningDecoder::merge(
|
| CBC_BoundingBox* CBC_PDF417ScanningDecoder::adjustBoundingBox(
|
| CBC_DetectionResultRowIndicatorColumn* rowIndicatorColumn,
|
| int32_t& e) {
|
| - if (rowIndicatorColumn == NULL) {
|
| - return NULL;
|
| - }
|
| + if (!rowIndicatorColumn)
|
| + return nullptr;
|
| +
|
| CFX_Int32Array* rowHeights = rowIndicatorColumn->getRowHeights(e);
|
| - BC_EXCEPTION_CHECK_ReturnValue(e, NULL);
|
| + BC_EXCEPTION_CHECK_ReturnValue(e, nullptr);
|
| int32_t maxRowHeight = getMax(*rowHeights);
|
| int32_t missingStartRows = 0;
|
| for (int32_t i = 0; i < rowHeights->GetSize(); i++) {
|
| @@ -232,8 +233,7 @@ CBC_BoundingBox* CBC_PDF417ScanningDecoder::adjustBoundingBox(
|
| }
|
| CFX_ArrayTemplate<CBC_Codeword*>* codewords =
|
| rowIndicatorColumn->getCodewords();
|
| - for (int32_t row = 0; missingStartRows > 0 && codewords->GetAt(row) == NULL;
|
| - row++) {
|
| + for (int32_t row = 0; missingStartRows > 0 && !codewords->GetAt(row); row++) {
|
| missingStartRows--;
|
| }
|
| int32_t missingEndRows = 0;
|
| @@ -244,13 +244,13 @@ CBC_BoundingBox* CBC_PDF417ScanningDecoder::adjustBoundingBox(
|
| }
|
| }
|
| for (int32_t row2 = codewords->GetSize() - 1;
|
| - missingEndRows > 0 && codewords->GetAt(row2) == NULL; row2--) {
|
| + missingEndRows > 0 && !codewords->GetAt(row2); row2--) {
|
| missingEndRows--;
|
| }
|
| CBC_BoundingBox* boundingBox =
|
| rowIndicatorColumn->getBoundingBox()->addMissingRows(
|
| missingStartRows, missingEndRows, rowIndicatorColumn->isLeft(), e);
|
| - BC_EXCEPTION_CHECK_ReturnValue(e, NULL);
|
| + BC_EXCEPTION_CHECK_ReturnValue(e, nullptr);
|
| return boundingBox;
|
| }
|
| int32_t CBC_PDF417ScanningDecoder::getMax(CFX_Int32Array& values) {
|
| @@ -264,22 +264,23 @@ int32_t CBC_PDF417ScanningDecoder::getMax(CFX_Int32Array& values) {
|
| CBC_BarcodeMetadata* CBC_PDF417ScanningDecoder::getBarcodeMetadata(
|
| CBC_DetectionResultRowIndicatorColumn* leftRowIndicatorColumn,
|
| CBC_DetectionResultRowIndicatorColumn* rightRowIndicatorColumn) {
|
| - CBC_BarcodeMetadata* leftBarcodeMetadata = NULL;
|
| - CBC_BarcodeMetadata* rightBarcodeMetadata = NULL;
|
| - if (leftRowIndicatorColumn == NULL ||
|
| - (leftBarcodeMetadata = leftRowIndicatorColumn->getBarcodeMetadata()) ==
|
| - NULL) {
|
| - return rightRowIndicatorColumn == NULL
|
| - ? NULL
|
| - : rightRowIndicatorColumn->getBarcodeMetadata();
|
| - }
|
| - if (rightRowIndicatorColumn == NULL ||
|
| - (rightBarcodeMetadata = rightRowIndicatorColumn->getBarcodeMetadata()) ==
|
| - NULL) {
|
| - return leftRowIndicatorColumn == NULL
|
| - ? NULL
|
| - : leftRowIndicatorColumn->getBarcodeMetadata();
|
| + CBC_BarcodeMetadata* leftBarcodeMetadata =
|
| + leftRowIndicatorColumn ? leftRowIndicatorColumn->getBarcodeMetadata()
|
| + : nullptr;
|
| + if (!leftBarcodeMetadata) {
|
| + return rightRowIndicatorColumn
|
| + ? rightRowIndicatorColumn->getBarcodeMetadata()
|
| + : nullptr;
|
| + }
|
| +
|
| + CBC_BarcodeMetadata* rightBarcodeMetadata =
|
| + rightRowIndicatorColumn ? rightRowIndicatorColumn->getBarcodeMetadata()
|
| + : nullptr;
|
| + if (!rightBarcodeMetadata) {
|
| + return leftRowIndicatorColumn ? leftRowIndicatorColumn->getBarcodeMetadata()
|
| + : nullptr;
|
| }
|
| +
|
| if (leftBarcodeMetadata->getColumnCount() !=
|
| rightBarcodeMetadata->getColumnCount() &&
|
| leftBarcodeMetadata->getErrorCorrectionLevel() !=
|
| @@ -288,7 +289,7 @@ CBC_BarcodeMetadata* CBC_PDF417ScanningDecoder::getBarcodeMetadata(
|
| rightBarcodeMetadata->getRowCount()) {
|
| delete leftBarcodeMetadata;
|
| delete rightBarcodeMetadata;
|
| - return NULL;
|
| + return nullptr;
|
| }
|
| delete rightBarcodeMetadata;
|
| return leftBarcodeMetadata;
|
| @@ -446,7 +447,7 @@ CBC_PDF417ScanningDecoder::createDecoderResultFromAmbiguousValues(
|
| }
|
| }
|
| e = BCExceptionChecksumInstance;
|
| - return NULL;
|
| + return nullptr;
|
| }
|
| CBC_BarcodeValueArrayArray* CBC_PDF417ScanningDecoder::createBarcodeMatrix(
|
| CBC_DetectionResult* detectionResult) {
|
| @@ -466,16 +467,16 @@ CBC_BarcodeValueArrayArray* CBC_PDF417ScanningDecoder::createBarcodeMatrix(
|
| CBC_DetectionResultColumn* detectionResultColumn =
|
| (CBC_DetectionResultColumn*)detectionResult->getDetectionResultColumns()
|
| .GetAt(i);
|
| - if (detectionResultColumn == NULL) {
|
| + if (!detectionResultColumn)
|
| continue;
|
| - }
|
| +
|
| CFX_ArrayTemplate<CBC_Codeword*>* temp =
|
| detectionResultColumn->getCodewords();
|
| for (int32_t l = 0; l < temp->GetSize(); l++) {
|
| CBC_Codeword* codeword = temp->GetAt(l);
|
| - if (codeword == NULL || codeword->getRowNumber() == -1) {
|
| + if (!codeword || codeword->getRowNumber() == -1)
|
| continue;
|
| - }
|
| +
|
| barcodeMatrix->GetAt(codeword->getRowNumber())
|
| ->GetAt(i)
|
| ->setValue(codeword->getValue());
|
| @@ -495,7 +496,7 @@ int32_t CBC_PDF417ScanningDecoder::getStartColumn(
|
| int32_t imageRow,
|
| FX_BOOL leftToRight) {
|
| int32_t offset = leftToRight ? 1 : -1;
|
| - CBC_Codeword* codeword = NULL;
|
| + CBC_Codeword* codeword = nullptr;
|
| if (isValidBarcodeColumn(detectionResult, barcodeColumn - offset)) {
|
| codeword = detectionResult->getDetectionResultColumn(barcodeColumn - offset)
|
| ->getCodeword(imageRow);
|
| @@ -553,9 +554,9 @@ CBC_Codeword* CBC_PDF417ScanningDecoder::detectCodeword(
|
| leftToRight, startColumn, imageRow);
|
| CFX_Int32Array* moduleBitCount = getModuleBitCount(
|
| image, minColumn, maxColumn, leftToRight, startColumn, imageRow);
|
| - if (moduleBitCount == NULL) {
|
| - return NULL;
|
| - }
|
| + if (!moduleBitCount)
|
| + return nullptr;
|
| +
|
| int32_t endColumn;
|
| int32_t codewordBitCount = CBC_PDF417Common::getBitCountSum(*moduleBitCount);
|
| if (leftToRight) {
|
| @@ -575,7 +576,7 @@ CBC_Codeword* CBC_PDF417ScanningDecoder::detectCodeword(
|
| int32_t codeword = CBC_PDF417Common::getCodeword(decodedValue);
|
| delete moduleBitCount;
|
| if (codeword == -1) {
|
| - return NULL;
|
| + return nullptr;
|
| }
|
| return new CBC_Codeword(startColumn, endColumn,
|
| getCodewordBucketNumber(decodedValue), codeword);
|
| @@ -612,7 +613,7 @@ CFX_Int32Array* CBC_PDF417ScanningDecoder::getModuleBitCount(
|
| return moduleBitCount;
|
| }
|
| delete moduleBitCount;
|
| - return NULL;
|
| + return nullptr;
|
| }
|
| int32_t CBC_PDF417ScanningDecoder::getNumberOfECCodeWords(
|
| int32_t barcodeECLevel) {
|
| @@ -655,17 +656,17 @@ CBC_CommonDecoderResult* CBC_PDF417ScanningDecoder::decodeCodewords(
|
| int32_t& e) {
|
| if (codewords.GetSize() == 0) {
|
| e = BCExceptionFormatInstance;
|
| - return NULL;
|
| + return nullptr;
|
| }
|
| int32_t numECCodewords = 1 << (ecLevel + 1);
|
| correctErrors(codewords, erasures, numECCodewords, e);
|
| - BC_EXCEPTION_CHECK_ReturnValue(e, NULL);
|
| + BC_EXCEPTION_CHECK_ReturnValue(e, nullptr);
|
| verifyCodewordCount(codewords, numECCodewords, e);
|
| - BC_EXCEPTION_CHECK_ReturnValue(e, NULL);
|
| + BC_EXCEPTION_CHECK_ReturnValue(e, nullptr);
|
| CFX_ByteString bytestring;
|
| CBC_CommonDecoderResult* decoderResult = CBC_DecodedBitStreamPaser::decode(
|
| codewords, bytestring.FormatInteger(ecLevel), e);
|
| - BC_EXCEPTION_CHECK_ReturnValue(e, NULL);
|
| + BC_EXCEPTION_CHECK_ReturnValue(e, nullptr);
|
| return decoderResult;
|
| }
|
| int32_t CBC_PDF417ScanningDecoder::correctErrors(CFX_Int32Array& codewords,
|
|
|