summaryrefslogtreecommitdiff
path: root/fpdfsdk/fpdfppo.cpp
diff options
context:
space:
mode:
authorRyan Harrison <rharrison@chromium.org>2017-08-29 16:39:44 -0400
committerChromium commit bot <commit-bot@chromium.org>2017-08-30 14:35:33 +0000
commitaa3a9cd82df9dff1ef136797259e606a39c18b75 (patch)
tree5ca71f96fa289c5f13d22b371341882b77c7331f /fpdfsdk/fpdfppo.cpp
parent980a3ea30872cef9ada360aa85e7c3573d7668b5 (diff)
downloadpdfium-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 'fpdfsdk/fpdfppo.cpp')
-rw-r--r--fpdfsdk/fpdfppo.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/fpdfsdk/fpdfppo.cpp b/fpdfsdk/fpdfppo.cpp
index 861b15c259..d08de020bb 100644
--- a/fpdfsdk/fpdfppo.cpp
+++ b/fpdfsdk/fpdfppo.cpp
@@ -77,9 +77,9 @@ bool ParserPageRangeString(CFX_ByteString rangstring,
return true;
rangstring.Remove(' ');
- int nLength = rangstring.GetLength();
+ FX_STRSIZE nLength = rangstring.GetLength();
CFX_ByteString cbCompareString("0123456789-,");
- for (int i = 0; i < nLength; ++i) {
+ for (FX_STRSIZE i = 0; i < nLength; ++i) {
if (!cbCompareString.Contains(rangstring[i]))
return false;
}
@@ -94,26 +94,29 @@ bool ParserPageRangeString(CFX_ByteString rangstring,
cbMidRange = rangstring.Mid(nStringFrom, nStringTo.value() - nStringFrom);
auto nMid = cbMidRange.Find('-');
if (!nMid.has_value()) {
- long lPageNum = atol(cbMidRange.c_str());
- if (lPageNum <= 0 || lPageNum > nCount)
+ uint16_t pageNum =
+ pdfium::base::checked_cast<uint16_t>(atoi(cbMidRange.c_str()));
+ if (pageNum <= 0 || pageNum > nCount)
return false;
- pageArray->push_back((uint16_t)lPageNum);
+ pageArray->push_back(pageNum);
} else {
- int nStartPageNum = atol(cbMidRange.Left(nMid.value()).c_str());
+ uint16_t nStartPageNum = pdfium::base::checked_cast<uint16_t>(
+ atoi(cbMidRange.Left(nMid.value()).c_str()));
if (nStartPageNum == 0)
return false;
nMid = nMid.value() + 1;
- int nEnd = cbMidRange.GetLength() - nMid.value();
+ FX_STRSIZE nEnd = cbMidRange.GetLength() - nMid.value();
if (nEnd == 0)
return false;
- int nEndPageNum = atol(cbMidRange.Mid(nMid.value(), nEnd).c_str());
+ uint16_t nEndPageNum = pdfium::base::checked_cast<uint16_t>(
+ atoi(cbMidRange.Mid(nMid.value(), nEnd).c_str()));
if (nStartPageNum < 0 || nStartPageNum > nEndPageNum ||
nEndPageNum > nCount) {
return false;
}
- for (int i = nStartPageNum; i <= nEndPageNum; ++i) {
+ for (uint16_t i = nStartPageNum; i <= nEndPageNum; ++i) {
pageArray->push_back(i);
}
}