Use another enum class in CBC_PDF417HighLevelEncoder.
Make the EncodingMode an enum class.
Change-Id: I20b948180399289f1edd9abbd2cb16e45ae14ca5
Reviewed-on: https://pdfium-review.googlesource.com/c/45692
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp
index 7739801..e899fb9 100644
--- a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp
+++ b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp
@@ -102,26 +102,26 @@
if (compaction == TEXT) {
EncodeText(msg, p, len, textSubMode, &sb);
} else if (compaction == BYTES) {
- EncodeBinary(byteArr, p, byteArr.size(), BYTE_COMPACTION, &sb);
+ EncodeBinary(byteArr, p, byteArr.size(), EncodingMode::kByte, &sb);
} else if (compaction == NUMERIC) {
sb += kLatchToNumeric;
EncodeNumeric(msg, p, len, &sb);
} else {
- int32_t encodingMode = kLatchToText;
+ EncodingMode encodingMode = EncodingMode::kUnknown;
while (p < len) {
size_t n = DetermineConsecutiveDigitCount(msg, p);
if (n >= 13) {
sb += kLatchToNumeric;
- encodingMode = NUMERIC_COMPACTION;
+ encodingMode = EncodingMode::kNumeric;
textSubMode = SubMode::kAlpha;
EncodeNumeric(msg, p, n, &sb);
p += n;
} else {
size_t t = DetermineConsecutiveTextCount(msg, p);
if (t >= 5 || n == len) {
- if (encodingMode != TEXT_COMPACTION) {
+ if (encodingMode != EncodingMode::kText) {
sb += kLatchToText;
- encodingMode = TEXT_COMPACTION;
+ encodingMode = EncodingMode::kText;
textSubMode = SubMode::kAlpha;
}
textSubMode = EncodeText(msg, p, t, textSubMode, &sb);
@@ -137,11 +137,11 @@
if (b_value == 0) {
b_value = 1;
}
- if (b_value == 1 && encodingMode == TEXT_COMPACTION) {
- EncodeBinary(byteArr, p, 1, TEXT_COMPACTION, &sb);
+ if (b_value == 1 && encodingMode == EncodingMode::kText) {
+ EncodeBinary(byteArr, p, 1, EncodingMode::kText, &sb);
} else {
EncodeBinary(byteArr, p, b_value, encodingMode, &sb);
- encodingMode = BYTE_COMPACTION;
+ encodingMode = EncodingMode::kByte;
textSubMode = SubMode::kAlpha;
}
p += b_value;
@@ -286,9 +286,9 @@
void CBC_PDF417HighLevelEncoder::EncodeBinary(const std::vector<uint8_t>& bytes,
size_t startpos,
size_t count,
- int32_t startmode,
+ EncodingMode startmode,
WideString* sb) {
- if (count == 1 && startmode == TEXT_COMPACTION)
+ if (count == 1 && startmode == EncodingMode::kText)
*sb += kShiftToByte;
size_t idx = startpos;
diff --git a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h
index 4706ab1..a654e4b 100644
--- a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h
+++ b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h
@@ -22,11 +22,9 @@
static void Finalize();
private:
- enum class SubMode { kAlpha = 0, kLower, kMixed, kPunctuation };
+ enum class EncodingMode { kUnknown = 0, kText, kByte, kNumeric };
- static constexpr int32_t TEXT_COMPACTION = 0;
- static constexpr int32_t BYTE_COMPACTION = 1;
- static constexpr int32_t NUMERIC_COMPACTION = 2;
+ enum class SubMode { kAlpha = 0, kLower, kMixed, kPunctuation };
static SubMode EncodeText(const WideString& msg,
size_t startpos,
@@ -36,7 +34,7 @@
static void EncodeBinary(const std::vector<uint8_t>& bytes,
size_t startpos,
size_t count,
- int32_t startmode,
+ EncodingMode startmode,
WideString* sb);
static void EncodeNumeric(const WideString& msg,
size_t startpos,
diff --git a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder_unittest.cpp b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder_unittest.cpp
index 6a0b777..a37a8dc 100644
--- a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder_unittest.cpp
+++ b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder_unittest.cpp
@@ -18,23 +18,23 @@
const char* input;
int offset;
int count;
- int startmode;
+ CBC_PDF417HighLevelEncoder::EncodingMode startmode;
const wchar_t* expected;
int expected_length;
} encode_binary_cases[] = {
// Empty string encodes as empty string.
- {"", 0, 0, CBC_PDF417HighLevelEncoder::TEXT_COMPACTION, L"", 0},
+ {"", 0, 0, CBC_PDF417HighLevelEncoder::EncodingMode::kText, L"", 0},
// Fewer than 6 characters encodes as prefix without compaction.
- {"xxxxx", 0, 5, CBC_PDF417HighLevelEncoder::TEXT_COMPACTION,
+ {"xxxxx", 0, 5, CBC_PDF417HighLevelEncoder::EncodingMode::kText,
L"\x0385xxxxx", 6},
// 6 charcters triggerst text encoding compaction.
- {"xxxxxx", 0, 6, CBC_PDF417HighLevelEncoder::TEXT_COMPACTION,
+ {"xxxxxx", 0, 6, CBC_PDF417HighLevelEncoder::EncodingMode::kText,
L"\u039c\u00c9\u031f\u012a\u00d2\u02d0", 6},
// Same result if initially in numeric compaction mode.
- {"xxxxxx", 0, 6, CBC_PDF417HighLevelEncoder::NUMERIC_COMPACTION,
+ {"xxxxxx", 0, 6, CBC_PDF417HighLevelEncoder::EncodingMode::kNumeric,
L"\u039c\u00c9\u031f\u012a\u00d2\u02d0", 6},
};