summaryrefslogtreecommitdiff
path: root/fxbarcode
diff options
context:
space:
mode:
Diffstat (limited to 'fxbarcode')
-rw-r--r--fxbarcode/datamatrix/BC_ErrorCorrection.cpp3
-rw-r--r--fxbarcode/datamatrix/BC_HighLevelEncoder.cpp17
-rw-r--r--fxbarcode/qrcode/BC_QRCoderEncoder.cpp12
3 files changed, 19 insertions, 13 deletions
diff --git a/fxbarcode/datamatrix/BC_ErrorCorrection.cpp b/fxbarcode/datamatrix/BC_ErrorCorrection.cpp
index 2e84df5c59..c45eadcf9a 100644
--- a/fxbarcode/datamatrix/BC_ErrorCorrection.cpp
+++ b/fxbarcode/datamatrix/BC_ErrorCorrection.cpp
@@ -122,7 +122,8 @@ CBC_ErrorCorrection::~CBC_ErrorCorrection() {}
CFX_WideString CBC_ErrorCorrection::encodeECC200(CFX_WideString codewords,
CBC_SymbolInfo* symbolInfo,
int32_t& e) {
- if (codewords.GetLength() != symbolInfo->dataCapacity()) {
+ if (pdfium::base::checked_cast<int32_t>(codewords.GetLength()) !=
+ symbolInfo->dataCapacity()) {
e = BCExceptionIllegalArgument;
return CFX_WideString();
}
diff --git a/fxbarcode/datamatrix/BC_HighLevelEncoder.cpp b/fxbarcode/datamatrix/BC_HighLevelEncoder.cpp
index d2f40dd060..b8c63946db 100644
--- a/fxbarcode/datamatrix/BC_HighLevelEncoder.cpp
+++ b/fxbarcode/datamatrix/BC_HighLevelEncoder.cpp
@@ -118,18 +118,20 @@ CFX_WideString CBC_HighLevelEncoder::encodeHighLevel(CFX_WideString msg,
}
}
CFX_WideString codewords = context.m_codewords;
- if (codewords.GetLength() < capacity) {
+ if (pdfium::base::checked_cast<int32_t>(codewords.GetLength()) < capacity) {
codewords += PAD;
}
- while (codewords.GetLength() < capacity) {
- codewords += (randomize253State(PAD, codewords.GetLength() + 1));
+ while (pdfium::base::checked_cast<int32_t>(codewords.GetLength()) <
+ capacity) {
+ codewords += (randomize253State(
+ PAD, pdfium::base::checked_cast<int32_t>(codewords.GetLength()) + 1));
}
return codewords;
}
int32_t CBC_HighLevelEncoder::lookAheadTest(CFX_WideString msg,
int32_t startpos,
int32_t currentMode) {
- if (startpos >= msg.GetLength()) {
+ if (startpos >= pdfium::base::checked_cast<int32_t>(msg.GetLength())) {
return currentMode;
}
std::vector<float> charCounts;
@@ -151,7 +153,8 @@ int32_t CBC_HighLevelEncoder::lookAheadTest(CFX_WideString msg,
}
int32_t charsProcessed = 0;
while (true) {
- if ((startpos + charsProcessed) == msg.GetLength()) {
+ if ((startpos + charsProcessed) ==
+ pdfium::base::checked_cast<int32_t>(msg.GetLength())) {
int32_t min = std::numeric_limits<int32_t>::max();
std::vector<uint8_t> mins(6);
std::vector<int32_t> intCharCounts(6);
@@ -252,7 +255,9 @@ int32_t CBC_HighLevelEncoder::lookAheadTest(CFX_WideString msg,
}
if (intCharCounts[C40_ENCODATION] == intCharCounts[X12_ENCODATION]) {
int32_t p = startpos + charsProcessed + 1;
- while (p < msg.GetLength()) {
+ int32_t checked_length =
+ pdfium::base::checked_cast<int32_t>(msg.GetLength());
+ while (p < checked_length) {
wchar_t tc = msg[p];
if (isX12TermSep(tc)) {
return X12_ENCODATION;
diff --git a/fxbarcode/qrcode/BC_QRCoderEncoder.cpp b/fxbarcode/qrcode/BC_QRCoderEncoder.cpp
index 911730fbe5..4c488418d9 100644
--- a/fxbarcode/qrcode/BC_QRCoderEncoder.cpp
+++ b/fxbarcode/qrcode/BC_QRCoderEncoder.cpp
@@ -380,8 +380,8 @@ void MergeString(std::vector<ModeStringPair>* result,
CBC_QRCoderMode::sBYTE, versionNum, e);
if (e != BCExceptionNO)
return;
- if (element2.first == CBC_QRCoderMode::sBYTE &&
- element1.second.GetLength() < tmp) {
+ if (element2.first == CBC_QRCoderMode::sBYTE && tmp >= 0 &&
+ element1.second.GetLength() < static_cast<FX_STRSIZE>(tmp)) {
element2.second = element1.second + element2.second;
result->erase(result->begin() + i);
i--;
@@ -399,8 +399,8 @@ void MergeString(std::vector<ModeStringPair>* result,
CBC_QRCoderMode::sBYTE, versionNum, e);
if (e != BCExceptionNO)
return;
- if (element2.first == CBC_QRCoderMode::sBYTE &&
- element1.second.GetLength() < tmp) {
+ if (element2.first == CBC_QRCoderMode::sBYTE && tmp >= 0 &&
+ element1.second.GetLength() < static_cast<FX_STRSIZE>(tmp)) {
element2.second = element1.second + element2.second;
result->erase(result->begin() + i);
i--;
@@ -410,8 +410,8 @@ void MergeString(std::vector<ModeStringPair>* result,
CBC_QRCoderMode::sALPHANUMERIC, versionNum, e);
if (e != BCExceptionNO)
return;
- if (element2.first == CBC_QRCoderMode::sALPHANUMERIC &&
- element1.second.GetLength() < tmp) {
+ if (element2.first == CBC_QRCoderMode::sALPHANUMERIC && tmp >= 0 &&
+ element1.second.GetLength() < static_cast<FX_STRSIZE>(tmp)) {
element2.second = element1.second + element2.second;
result->erase(result->begin() + i);
i--;