summaryrefslogtreecommitdiff
path: root/fxbarcode/oned
diff options
context:
space:
mode:
authorRyan Harrison <rharrison@chromium.org>2017-09-01 15:11:12 -0400
committerChromium commit bot <commit-bot@chromium.org>2017-09-01 19:23:04 +0000
commita2188df09255b49ad41a89ae9b5de640d0b03126 (patch)
treee8fb878b806b96d795a30206347669e709ee29bf /fxbarcode/oned
parent7558414b8aa1d14ce02e360dd88e4f421cee8725 (diff)
downloadpdfium-a2188df09255b49ad41a89ae9b5de640d0b03126.tar.xz
Cleanup usages of Mid(foo, 1), Right(1), and Left(1)chromium/3203
Mid(foo, 1) is equivalent to [foo], if all you want is the character. Similarly Left(1) is [0]. It is faster also, since it does not need to create intermediate strings. Right(1) is a touch more tricky, since it requires something like GetLength() ? [GetLength() - 1] : 0;. A new method, Last() has been added to perform this character extraction. Multiple call sites have been updated to use more efficient/simpler syntax. There are a number of call sites that use on these patterns, but based on the surrounding context we actually need/want a string, so they have not been modified. Change-Id: I485a7f9c7b34c9bdacecada610158f996816afdd Reviewed-on: https://pdfium-review.googlesource.com/12890 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'fxbarcode/oned')
-rw-r--r--fxbarcode/oned/BC_OnedEAN13Writer.cpp6
-rw-r--r--fxbarcode/oned/BC_OnedEAN8Writer.cpp9
-rw-r--r--fxbarcode/oned/BC_OnedUPCAWriter.cpp5
3 files changed, 11 insertions, 9 deletions
diff --git a/fxbarcode/oned/BC_OnedEAN13Writer.cpp b/fxbarcode/oned/BC_OnedEAN13Writer.cpp
index 6d8d51d495..dddb9cc24d 100644
--- a/fxbarcode/oned/BC_OnedEAN13Writer.cpp
+++ b/fxbarcode/oned/BC_OnedEAN13Writer.cpp
@@ -109,7 +109,7 @@ uint8_t* CBC_OnedEAN13Writer::EncodeImpl(const CFX_ByteString& contents,
return nullptr;
m_iDataLenth = 13;
- int32_t firstDigit = FXSYS_atoi(contents.Left(1).c_str());
+ int32_t firstDigit = FXSYS_DecimalCharToInt(contents.First());
int32_t parities = FIRST_DIGIT_ENCODINGS[firstDigit];
outLength = m_codeWidth;
std::unique_ptr<uint8_t, FxFreeDeleter> result(
@@ -122,7 +122,7 @@ uint8_t* CBC_OnedEAN13Writer::EncodeImpl(const CFX_ByteString& contents,
int32_t i = 0;
for (i = 1; i <= 6; i++) {
- int32_t digit = FXSYS_atoi(contents.Mid(i, 1).c_str());
+ int32_t digit = FXSYS_DecimalCharToInt(contents[i]);
if ((parities >> (6 - i) & 1) == 1) {
digit += 10;
}
@@ -135,7 +135,7 @@ uint8_t* CBC_OnedEAN13Writer::EncodeImpl(const CFX_ByteString& contents,
return nullptr;
for (i = 7; i <= 12; i++) {
- int32_t digit = FXSYS_atoi(contents.Mid(i, 1).c_str());
+ int32_t digit = FXSYS_DecimalCharToInt(contents[i]);
pos += AppendPattern(result.get(), pos, L_PATTERNS[digit], 4, 1, e);
if (e != BCExceptionNO)
return nullptr;
diff --git a/fxbarcode/oned/BC_OnedEAN8Writer.cpp b/fxbarcode/oned/BC_OnedEAN8Writer.cpp
index 6810e9e285..3fcb1e8350 100644
--- a/fxbarcode/oned/BC_OnedEAN8Writer.cpp
+++ b/fxbarcode/oned/BC_OnedEAN8Writer.cpp
@@ -27,6 +27,7 @@
#include <memory>
#include <vector>
+#include "core/fxcrt/fx_extension.h"
#include "core/fxge/cfx_defaultrenderdevice.h"
#include "fxbarcode/BC_Writer.h"
#include "fxbarcode/common/BC_CommonBitMatrix.h"
@@ -87,9 +88,9 @@ int32_t CBC_OnedEAN8Writer::CalcChecksum(const CFX_ByteString& contents) {
int32_t even = 0;
for (FX_STRSIZE i = contents.GetLength(); i > 0; i--) {
if (i % 2) {
- odd += FXSYS_atoi(contents.Mid(i - 1, 1).c_str());
+ odd += FXSYS_DecimalCharToInt(contents[i - 1]);
} else {
- even += FXSYS_atoi(contents.Mid(i - 1, 1).c_str());
+ even += FXSYS_DecimalCharToInt(contents[i - 1]);
}
}
int32_t checksum = (odd * 3 + even) % 10;
@@ -124,7 +125,7 @@ uint8_t* CBC_OnedEAN8Writer::EncodeImpl(const CFX_ByteString& contents,
int32_t i = 0;
for (i = 0; i <= 3; i++) {
- int32_t digit = FXSYS_atoi(contents.Mid(i, 1).c_str());
+ int32_t digit = FXSYS_DecimalCharToInt(contents[i]);
pos += AppendPattern(result.get(), pos, L_PATTERNS[digit], 4, 0, e);
if (e != BCExceptionNO)
return nullptr;
@@ -134,7 +135,7 @@ uint8_t* CBC_OnedEAN8Writer::EncodeImpl(const CFX_ByteString& contents,
return nullptr;
for (i = 4; i <= 7; i++) {
- int32_t digit = FXSYS_atoi(contents.Mid(i, 1).c_str());
+ int32_t digit = FXSYS_DecimalCharToInt(contents[i]);
pos += AppendPattern(result.get(), pos, L_PATTERNS[digit], 4, 1, e);
if (e != BCExceptionNO)
return nullptr;
diff --git a/fxbarcode/oned/BC_OnedUPCAWriter.cpp b/fxbarcode/oned/BC_OnedUPCAWriter.cpp
index 5782fe4e1a..fac4a1b0a3 100644
--- a/fxbarcode/oned/BC_OnedUPCAWriter.cpp
+++ b/fxbarcode/oned/BC_OnedUPCAWriter.cpp
@@ -24,6 +24,7 @@
#include <vector>
+#include "core/fxcrt/fx_extension.h"
#include "core/fxge/cfx_defaultrenderdevice.h"
#include "fxbarcode/BC_Writer.h"
#include "fxbarcode/oned/BC_OneDimWriter.h"
@@ -72,9 +73,9 @@ int32_t CBC_OnedUPCAWriter::CalcChecksum(const CFX_ByteString& contents) {
FX_STRSIZE j = 1;
for (FX_STRSIZE i = contents.GetLength(); i > 0; i--) {
if (j % 2) {
- odd += FXSYS_atoi(contents.Mid(i - 1, 1).c_str());
+ odd += FXSYS_DecimalCharToInt(contents[i - 1]);
} else {
- even += FXSYS_atoi(contents.Mid(i - 1, 1).c_str());
+ even += FXSYS_DecimalCharToInt(contents[i - 1]);
}
j++;
}