nsTSubstring_CharT::size_type nsTSubstring_CharT::CountChar( char_type c ) const { const char_type *start = mData; const char_type *end = mData + mLength; return NS_COUNT(start, end, c); }
PRInt32 nsScannerSubstring::CountChar( PRUnichar c ) const { /* re-write this to use a counting sink */ size_type result = 0; size_type lengthToExamine = Length(); nsScannerIterator iter; for ( BeginReading(iter); ; ) { PRInt32 lengthToExamineInThisFragment = iter.size_forward(); const PRUnichar* fromBegin = iter.get(); result += size_type(NS_COUNT(fromBegin, fromBegin+lengthToExamineInThisFragment, c)); if ( !(lengthToExamine -= lengthToExamineInThisFragment) ) return result; iter.advance(lengthToExamineInThisFragment); } // never reached; quiets warnings return 0; }