diff options
author | Ryan Harrison <rharrison@chromium.org> | 2017-08-29 16:39:44 -0400 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-08-30 14:35:33 +0000 |
commit | aa3a9cd82df9dff1ef136797259e606a39c18b75 (patch) | |
tree | 5ca71f96fa289c5f13d22b371341882b77c7331f /core/fpdfapi/font | |
parent | 980a3ea30872cef9ada360aa85e7c3573d7668b5 (diff) | |
download | pdfium-aa3a9cd82df9dff1ef136797259e606a39c18b75.tar.xz |
Convert int* references to FX_STRSIZE
Through out the code base there are numerous places where variables
are declared using a signed integer type when interacting with the
string classes, since they assume that FX_STRSIZE is 'int'. As part of
changing the underling type of FX_STRSIZE to be unsigned, these
locations are being changed to use FX_STRSIZE. This is necessary as
part of converting the type, but has been broken off into a separate CL,
since it should be low risk.
Some related cleanups that are low risk are included as part of
this CL.
BUG=pdfium:828
Change-Id: Ifaae54ad195ccde0fe8672f71271d29a6ebd65fd
Reviewed-on: https://pdfium-review.googlesource.com/12210
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Diffstat (limited to 'core/fpdfapi/font')
-rw-r--r-- | core/fpdfapi/font/cpdf_cmap.cpp | 4 | ||||
-rw-r--r-- | core/fpdfapi/font/cpdf_cmap.h | 2 | ||||
-rw-r--r-- | core/fpdfapi/font/cpdf_cmapparser.cpp | 17 |
3 files changed, 10 insertions, 13 deletions
diff --git a/core/fpdfapi/font/cpdf_cmap.cpp b/core/fpdfapi/font/cpdf_cmap.cpp index 55f5ccc5c5..7b88346d64 100644 --- a/core/fpdfapi/font/cpdf_cmap.cpp +++ b/core/fpdfapi/font/cpdf_cmap.cpp @@ -182,7 +182,7 @@ const PredefinedCMap g_PredefinedCMaps[] = { }; int CheckFourByteCodeRange(uint8_t* codes, - int size, + FX_STRSIZE size, const std::vector<CPDF_CMap::CodeRange>& ranges) { int iSeg = pdfium::CollectionSize<int>(ranges) - 1; while (iSeg >= 0) { @@ -216,7 +216,7 @@ int GetFourByteCharSizeImpl(uint32_t charcode, codes[0] = codes[1] = 0x00; codes[2] = (uint8_t)(charcode >> 8 & 0xFF); codes[3] = (uint8_t)charcode; - int offset = 0; + FX_STRSIZE offset = 0; int size = 4; for (int i = 0; i < 4; ++i) { int iSeg = pdfium::CollectionSize<int>(ranges) - 1; diff --git a/core/fpdfapi/font/cpdf_cmap.h b/core/fpdfapi/font/cpdf_cmap.h index ab495efbfc..b47b12d531 100644 --- a/core/fpdfapi/font/cpdf_cmap.h +++ b/core/fpdfapi/font/cpdf_cmap.h @@ -37,7 +37,7 @@ class CPDF_CMap : public CFX_Retainable { }; struct CodeRange { - int m_CharSize; + FX_STRSIZE m_CharSize; uint8_t m_Lower[4]; uint8_t m_Upper[4]; }; diff --git a/core/fpdfapi/font/cpdf_cmapparser.cpp b/core/fpdfapi/font/cpdf_cmapparser.cpp index 272f8deb34..101ae5f0c8 100644 --- a/core/fpdfapi/font/cpdf_cmapparser.cpp +++ b/core/fpdfapi/font/cpdf_cmapparser.cpp @@ -141,7 +141,8 @@ uint32_t CPDF_CMapParser::CMap_GetCode(const CFX_ByteStringC& word) { return 0; pdfium::base::CheckedNumeric<uint32_t> num = 0; if (word[0] == '<') { - for (int i = 1; i < word.GetLength() && std::isxdigit(word[i]); ++i) { + for (FX_STRSIZE i = 1; i < word.GetLength() && std::isxdigit(word[i]); + ++i) { num = num * 16 + FXSYS_HexCharToInt(word[i]); if (!num.IsValid()) return 0; @@ -149,7 +150,7 @@ uint32_t CPDF_CMapParser::CMap_GetCode(const CFX_ByteStringC& word) { return num.ValueOrDie(); } - for (int i = 0; i < word.GetLength() && std::isdigit(word[i]); ++i) { + for (FX_STRSIZE i = 0; i < word.GetLength() && std::isdigit(word[i]); ++i) { num = num * 10 + FXSYS_DecimalCharToInt(static_cast<wchar_t>(word[i])); if (!num.IsValid()) return 0; @@ -164,7 +165,7 @@ bool CPDF_CMapParser::CMap_GetCodeRange(CPDF_CMap::CodeRange& range, if (first.GetLength() == 0 || first[0] != '<') return false; - int i; + FX_STRSIZE i; for (i = 1; i < first.GetLength(); ++i) { if (first[i] == '>') { break; @@ -181,14 +182,10 @@ bool CPDF_CMapParser::CMap_GetCodeRange(CPDF_CMap::CodeRange& range, FXSYS_HexCharToInt(digit1) * 16 + FXSYS_HexCharToInt(digit2); } - uint32_t size = second.GetLength(); + FX_STRSIZE size = second.GetLength(); for (i = 0; i < range.m_CharSize; ++i) { - uint8_t digit1 = ((uint32_t)i * 2 + 1 < size) - ? second[static_cast<FX_STRSIZE>(i * 2 + 1)] - : '0'; - uint8_t digit2 = ((uint32_t)i * 2 + 2 < size) - ? second[static_cast<FX_STRSIZE>(i * 2 + 2)] - : '0'; + uint8_t digit1 = (i * 2 + 1 < size) ? second[i * 2 + 1] : '0'; + uint8_t digit2 = (i * 2 + 2 < size) ? second[i * 2 + 2] : '0'; range.m_Upper[i] = FXSYS_HexCharToInt(digit1) * 16 + FXSYS_HexCharToInt(digit2); } |