diff options
author | Ryan Harrison <rharrison@chromium.org> | 2017-08-23 10:39:35 -0400 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-08-23 15:11:19 +0000 |
commit | 12db7515f17228798d1aa38fce0fee3e7d2d36b6 (patch) | |
tree | e291daf9e6a88ba0248670b9f1ba3a555f052538 /xfa/fxfa/parser/cxfa_localevalue.cpp | |
parent | 3bb0a34cc75abe49a59c6390353957bbb5c5ab38 (diff) | |
download | pdfium-12db7515f17228798d1aa38fce0fee3e7d2d36b6.tar.xz |
Convert string Find methods to return an Optional
The Find and ReverseFind methods for WideString, WideStringC,
ByteString, and ByteStringC have been converted from returning a raw
FX_STRSIZE, to returning Optional<FX_STRSIZE>, so that success/failure
can be indicated without using FX_STRNPOS.
This allows for removing FX_STRNPOS and by association makes the
conversion of FX_STRSIZE to size_t easier, since it forces checking
the return value of Find to be explictly done as well as taking the
error value out of the range of FX_STRSIZE.
New Contains methods have been added for cases where the success or
failure is all the call site to Find cared about, and the actual
position was ignored.
BUG=pdfium:828
Change-Id: Id827e508c8660affa68cc08a13d96121369364b7
Reviewed-on: https://pdfium-review.googlesource.com/11350
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'xfa/fxfa/parser/cxfa_localevalue.cpp')
-rw-r--r-- | xfa/fxfa/parser/cxfa_localevalue.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/xfa/fxfa/parser/cxfa_localevalue.cpp b/xfa/fxfa/parser/cxfa_localevalue.cpp index aa0f74b170..dd56e6d7a1 100644 --- a/xfa/fxfa/parser/cxfa_localevalue.cpp +++ b/xfa/fxfa/parser/cxfa_localevalue.cpp @@ -49,14 +49,14 @@ bool ValueSplitDateTime(const CFX_WideString& wsDateTime, if (wsDateTime.IsEmpty()) return false; - FX_STRSIZE nSplitIndex = wsDateTime.Find('T'); - if (nSplitIndex == FX_STRNPOS) + auto nSplitIndex = wsDateTime.Find('T'); + if (!nSplitIndex.has_value()) nSplitIndex = wsDateTime.Find(' '); - if (nSplitIndex == FX_STRNPOS) + if (!nSplitIndex.has_value()) return false; - wsDate = wsDateTime.Left(nSplitIndex); - wsTime = wsDateTime.Right(wsDateTime.GetLength() - nSplitIndex - 1); + wsDate = wsDateTime.Left(nSplitIndex.value()); + wsTime = wsDateTime.Right(wsDateTime.GetLength() - nSplitIndex.value() - 1); return true; } @@ -444,7 +444,7 @@ bool CXFA_LocaleValue::ValidateCanonicalDate(const CFX_WideString& wsDate, if (nLen < wCountY || nLen > wCountY + wCountM + wCountD + 2) return false; - const bool bSymbol = wsDate.Find(0x2D) != FX_STRNPOS; + const bool bSymbol = wsDate.Contains(0x2D); uint16_t wYear = 0; uint16_t wMonth = 0; uint16_t wDay = 0; @@ -519,7 +519,7 @@ bool CXFA_LocaleValue::ValidateCanonicalTime(const CFX_WideString& wsTime) { const uint16_t wCountM = 2; const uint16_t wCountS = 2; const uint16_t wCountF = 3; - const bool bSymbol = wsTime.Find(':') != FX_STRNPOS; + const bool bSymbol = wsTime.Contains(':'); uint16_t wHour = 0; uint16_t wMinute = 0; uint16_t wSecond = 0; @@ -558,8 +558,8 @@ bool CXFA_LocaleValue::ValidateCanonicalTime(const CFX_WideString& wsTime) { wSecond = pTime[nIndex] - '0' + wSecond * 10; nIndex++; } - FX_STRSIZE ret = wsTime.Find('.'); - if (ret && ret != FX_STRNPOS) { + auto pos = wsTime.Find('.'); + if (pos.has_value() && pos.value() != 0) { if (pTime[nIndex] != '.') return false; nIndex++; |