From f7fe678a4ada859a2e4fbbeeb0b1dff5b5887227 Mon Sep 17 00:00:00 2001 From: tsepez Date: Wed, 11 May 2016 17:35:35 -0700 Subject: Add much-needed Find() method for CFX_*StringC BUG=pdfium:493 Review-Url: https://codereview.chromium.org/1968233002 --- core/fxcrt/fx_basic_bstring.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'core/fxcrt/fx_basic_bstring.cpp') diff --git a/core/fxcrt/fx_basic_bstring.cpp b/core/fxcrt/fx_basic_bstring.cpp index cd7b616fbe..18e240bc84 100644 --- a/core/fxcrt/fx_basic_bstring.cpp +++ b/core/fxcrt/fx_basic_bstring.cpp @@ -673,11 +673,12 @@ FX_STRSIZE CFX_ByteString::Find(FX_CHAR ch, FX_STRSIZE nStart) const { if (!m_pData) return -1; - if (nStart >= m_pData->m_nDataLength) + if (nStart < 0 || nStart >= m_pData->m_nDataLength) return -1; - const FX_CHAR* pStr = FXSYS_strchr(m_pData->m_String + nStart, ch); - return pStr ? (int)(pStr - m_pData->m_String) : -1; + const FX_CHAR* pStr = static_cast( + memchr(m_pData->m_String + nStart, ch, m_pData->m_nDataLength - nStart)); + return pStr ? pStr - m_pData->m_String : -1; } FX_STRSIZE CFX_ByteString::ReverseFind(FX_CHAR ch) const { -- cgit v1.2.3