Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Side by Side Diff: xfa/fxbarcode/datamatrix/BC_DataMatrixDecodedBitStreamParser.cpp

Issue 1908073003: Make CFX_BasicArray non-copyable. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « core/fxcrt/include/fx_basic.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 // Original code is licensed as follows: 6 // Original code is licensed as follows:
7 /* 7 /*
8 * Copyright 2008 ZXing authors 8 * Copyright 2008 ZXing authors
9 * 9 *
10 * Licensed under the Apache License, Version 2.0 (the "License"); 10 * Licensed under the Apache License, Version 2.0 (the "License");
(...skipping 30 matching lines...) Expand all
41 'V', 'W', 'X', 'Y', 'Z', '{', '|', '}', '~', (FX_CHAR)127}; 41 'V', 'W', 'X', 'Y', 'Z', '{', '|', '}', '~', (FX_CHAR)127};
42 const int32_t CBC_DataMatrixDecodedBitStreamParser::PAD_ENCODE = 0; 42 const int32_t CBC_DataMatrixDecodedBitStreamParser::PAD_ENCODE = 0;
43 const int32_t CBC_DataMatrixDecodedBitStreamParser::ASCII_ENCODE = 1; 43 const int32_t CBC_DataMatrixDecodedBitStreamParser::ASCII_ENCODE = 1;
44 const int32_t CBC_DataMatrixDecodedBitStreamParser::C40_ENCODE = 2; 44 const int32_t CBC_DataMatrixDecodedBitStreamParser::C40_ENCODE = 2;
45 const int32_t CBC_DataMatrixDecodedBitStreamParser::TEXT_ENCODE = 3; 45 const int32_t CBC_DataMatrixDecodedBitStreamParser::TEXT_ENCODE = 3;
46 const int32_t CBC_DataMatrixDecodedBitStreamParser::ANSIX12_ENCODE = 4; 46 const int32_t CBC_DataMatrixDecodedBitStreamParser::ANSIX12_ENCODE = 4;
47 const int32_t CBC_DataMatrixDecodedBitStreamParser::EDIFACT_ENCODE = 5; 47 const int32_t CBC_DataMatrixDecodedBitStreamParser::EDIFACT_ENCODE = 5;
48 const int32_t CBC_DataMatrixDecodedBitStreamParser::BASE256_ENCODE = 6; 48 const int32_t CBC_DataMatrixDecodedBitStreamParser::BASE256_ENCODE = 6;
49 CBC_DataMatrixDecodedBitStreamParser::CBC_DataMatrixDecodedBitStreamParser() {} 49 CBC_DataMatrixDecodedBitStreamParser::CBC_DataMatrixDecodedBitStreamParser() {}
50 CBC_DataMatrixDecodedBitStreamParser::~CBC_DataMatrixDecodedBitStreamParser() {} 50 CBC_DataMatrixDecodedBitStreamParser::~CBC_DataMatrixDecodedBitStreamParser() {}
51
51 CBC_CommonDecoderResult* CBC_DataMatrixDecodedBitStreamParser::Decode( 52 CBC_CommonDecoderResult* CBC_DataMatrixDecodedBitStreamParser::Decode(
52 CFX_ByteArray& bytes, 53 CFX_ByteArray& bytes,
53 int32_t& e) { 54 int32_t& e) {
54 CBC_CommonBitSource bits(&bytes); 55 CBC_CommonBitSource bits(&bytes);
55 CFX_ByteString result; 56 CFX_ByteString result;
56 CFX_ByteString resultTrailer; 57 CFX_ByteString resultTrailer;
57 CFX_Int32Array byteSegments; 58 CFX_Int32Array byteSegments;
58 int32_t mode = ASCII_ENCODE; 59 int32_t mode = ASCII_ENCODE;
59 do { 60 do {
60 if (mode == 1) { 61 if (mode == 1) {
61 mode = DecodeAsciiSegment(&bits, result, resultTrailer, e); 62 mode = DecodeAsciiSegment(&bits, result, resultTrailer, e);
62 BC_EXCEPTION_CHECK_ReturnValue(e, NULL); 63 BC_EXCEPTION_CHECK_ReturnValue(e, nullptr);
63 } else { 64 } else {
64 switch (mode) { 65 switch (mode) {
65 case 2: 66 case 2:
66 DecodeC40Segment(&bits, result, e); 67 DecodeC40Segment(&bits, result, e);
67 BC_EXCEPTION_CHECK_ReturnValue(e, NULL); 68 BC_EXCEPTION_CHECK_ReturnValue(e, nullptr);
68 break; 69 break;
69 case 3: 70 case 3:
70 DecodeTextSegment(&bits, result, e); 71 DecodeTextSegment(&bits, result, e);
71 BC_EXCEPTION_CHECK_ReturnValue(e, NULL); 72 BC_EXCEPTION_CHECK_ReturnValue(e, nullptr);
72 break; 73 break;
73 case 4: 74 case 4:
74 DecodeAnsiX12Segment(&bits, result, e); 75 DecodeAnsiX12Segment(&bits, result, e);
75 BC_EXCEPTION_CHECK_ReturnValue(e, NULL); 76 BC_EXCEPTION_CHECK_ReturnValue(e, nullptr);
76 break; 77 break;
77 case 5: 78 case 5:
78 DecodeEdifactSegment(&bits, result, e); 79 DecodeEdifactSegment(&bits, result, e);
79 BC_EXCEPTION_CHECK_ReturnValue(e, NULL); 80 BC_EXCEPTION_CHECK_ReturnValue(e, nullptr);
80 break; 81 break;
81 case 6: 82 case 6:
82 DecodeBase256Segment(&bits, result, byteSegments, e); 83 DecodeBase256Segment(&bits, result, byteSegments, e);
83 BC_EXCEPTION_CHECK_ReturnValue(e, NULL); 84 BC_EXCEPTION_CHECK_ReturnValue(e, nullptr);
84 break; 85 break;
85 default: 86 default:
86 e = BCExceptionFormatException; 87 e = BCExceptionFormatException;
87 return NULL; 88 return nullptr;
88 } 89 }
89 mode = ASCII_ENCODE; 90 mode = ASCII_ENCODE;
90 } 91 }
91 } while (mode != PAD_ENCODE && bits.Available() > 0); 92 } while (mode != PAD_ENCODE && bits.Available() > 0);
92 if (resultTrailer.GetLength() > 0) { 93 if (resultTrailer.GetLength() > 0) {
93 result += resultTrailer; 94 result += resultTrailer;
94 } 95 }
95 CBC_CommonDecoderResult* tempCp = new CBC_CommonDecoderResult(); 96 CBC_CommonDecoderResult* tempCp = new CBC_CommonDecoderResult();
96 tempCp->Init(bytes, result, 97 tempCp->Init(bytes, result, byteSegments, nullptr, e);
97 (byteSegments.GetSize() <= 0) ? CFX_Int32Array() : byteSegments, 98 BC_EXCEPTION_CHECK_ReturnValue(e, nullptr);
98 NULL, e);
99 BC_EXCEPTION_CHECK_ReturnValue(e, NULL);
100 return tempCp; 99 return tempCp;
101 } 100 }
101
102 int32_t CBC_DataMatrixDecodedBitStreamParser::DecodeAsciiSegment( 102 int32_t CBC_DataMatrixDecodedBitStreamParser::DecodeAsciiSegment(
103 CBC_CommonBitSource* bits, 103 CBC_CommonBitSource* bits,
104 CFX_ByteString& result, 104 CFX_ByteString& result,
105 CFX_ByteString& resultTrailer, 105 CFX_ByteString& resultTrailer,
106 int32_t& e) { 106 int32_t& e) {
107 FX_CHAR buffer[128]; 107 FX_CHAR buffer[128];
108 FX_BOOL upperShift = FALSE; 108 FX_BOOL upperShift = FALSE;
109 do { 109 do {
110 int32_t oneByte = bits->ReadBits(8, e); 110 int32_t oneByte = bits->ReadBits(8, e);
111 BC_EXCEPTION_CHECK_ReturnValue(e, 0); 111 BC_EXCEPTION_CHECK_ReturnValue(e, 0);
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 BC_FX_ByteString_Append(result, *bytes); 464 BC_FX_ByteString_Append(result, *bytes);
465 delete bytes; 465 delete bytes;
466 } 466 }
467 uint8_t CBC_DataMatrixDecodedBitStreamParser::Unrandomize255State( 467 uint8_t CBC_DataMatrixDecodedBitStreamParser::Unrandomize255State(
468 int32_t randomizedBase256Codeword, 468 int32_t randomizedBase256Codeword,
469 int32_t base256CodewordPosition) { 469 int32_t base256CodewordPosition) {
470 int32_t pseudoRandomNumber = ((149 * base256CodewordPosition) % 255) + 1; 470 int32_t pseudoRandomNumber = ((149 * base256CodewordPosition) % 255) + 1;
471 int32_t tempVariable = randomizedBase256Codeword - pseudoRandomNumber; 471 int32_t tempVariable = randomizedBase256Codeword - pseudoRandomNumber;
472 return (uint8_t)(tempVariable >= 0 ? tempVariable : tempVariable + 256); 472 return (uint8_t)(tempVariable >= 0 ? tempVariable : tempVariable + 256);
473 } 473 }
OLDNEW
« no previous file with comments | « core/fxcrt/include/fx_basic.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698