diff options
author | Ryan Harrison <rharrison@chromium.org> | 2017-09-01 15:11:12 -0400 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-09-01 19:23:04 +0000 |
commit | a2188df09255b49ad41a89ae9b5de640d0b03126 (patch) | |
tree | e8fb878b806b96d795a30206347669e709ee29bf /fxbarcode/oned/BC_OnedEAN8Writer.cpp | |
parent | 7558414b8aa1d14ce02e360dd88e4f421cee8725 (diff) | |
download | pdfium-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/BC_OnedEAN8Writer.cpp')
-rw-r--r-- | fxbarcode/oned/BC_OnedEAN8Writer.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
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; |