diff --git a/mozilla/string/public/nsAReadableString.h b/mozilla/string/public/nsAReadableString.h index 75ccda0e951..6f5cc6d54c4 100644 --- a/mozilla/string/public/nsAReadableString.h +++ b/mozilla/string/public/nsAReadableString.h @@ -268,11 +268,15 @@ class basic_nsAReadableString int Compare( const basic_nsAReadableString& rhs ) const; - // int Compare( const basic_nsLiteralString& rhs ) const; + int Compare( const CharT* ) const; + int Compare( const CharT*, PRUint32 ) const; +// int Compare( CharT ) const; // |Equals()| is a synonym for |Compare()| PRBool Equals( const basic_nsAReadableString& rhs ) const; - // PRBool Equals( const basic_nsLiteralString& rhs ) const; + PRBool Equals( const CharT* ) const; + PRBool Equals( const CharT*, PRUint32 ) const; +// PRBool Equals( CharT ) const; // Comparison operators are all synonyms for |Compare()| PRBool operator!=( const basic_nsAReadableString& rhs ) const { return Compare(rhs)!=0; } @@ -382,15 +386,21 @@ basic_nsAReadableString::Equals( const basic_nsAReadableString& rh return Compare(rhs) == 0; } -#if 0 template inline PRBool -basic_nsAReadableString::Equals( const basic_nsLiteralString& rhs ) const +basic_nsAReadableString::Equals( const CharT* rhs ) const { - return Compare(rhs) == 0; + return Compare(basic_nsLiteralString(rhs)) == 0; + } + +template +inline +PRBool +basic_nsAReadableString::Equals( const CharT* rhs, PRUint32 rhs_length ) const + { + return Compare(basic_nsLiteralString(rhs, rhs_length)) == 0; } -#endif template inline @@ -563,15 +573,21 @@ basic_nsAReadableString::Compare( const basic_nsAReadableString& r return ::Compare(*this, rhs); } -#if 0 template inline int -basic_nsAReadableString::Compare( const basic_nsLiteralString& rhs ) const +basic_nsAReadableString::Compare( const CharT* rhs ) const { - return ::Compare(*this, rhs); + return ::Compare(*this, basic_nsLiteralString(rhs)); + } + +template +inline +int +basic_nsAReadableString::Compare( const CharT* rhs, PRUint32 rhs_length ) const + { + return ::Compare(*this, basic_nsLiteralString(rhs, rhs_length)); } -#endif diff --git a/mozilla/xpcom/ds/nsAReadableString.h b/mozilla/xpcom/ds/nsAReadableString.h index 75ccda0e951..6f5cc6d54c4 100644 --- a/mozilla/xpcom/ds/nsAReadableString.h +++ b/mozilla/xpcom/ds/nsAReadableString.h @@ -268,11 +268,15 @@ class basic_nsAReadableString int Compare( const basic_nsAReadableString& rhs ) const; - // int Compare( const basic_nsLiteralString& rhs ) const; + int Compare( const CharT* ) const; + int Compare( const CharT*, PRUint32 ) const; +// int Compare( CharT ) const; // |Equals()| is a synonym for |Compare()| PRBool Equals( const basic_nsAReadableString& rhs ) const; - // PRBool Equals( const basic_nsLiteralString& rhs ) const; + PRBool Equals( const CharT* ) const; + PRBool Equals( const CharT*, PRUint32 ) const; +// PRBool Equals( CharT ) const; // Comparison operators are all synonyms for |Compare()| PRBool operator!=( const basic_nsAReadableString& rhs ) const { return Compare(rhs)!=0; } @@ -382,15 +386,21 @@ basic_nsAReadableString::Equals( const basic_nsAReadableString& rh return Compare(rhs) == 0; } -#if 0 template inline PRBool -basic_nsAReadableString::Equals( const basic_nsLiteralString& rhs ) const +basic_nsAReadableString::Equals( const CharT* rhs ) const { - return Compare(rhs) == 0; + return Compare(basic_nsLiteralString(rhs)) == 0; + } + +template +inline +PRBool +basic_nsAReadableString::Equals( const CharT* rhs, PRUint32 rhs_length ) const + { + return Compare(basic_nsLiteralString(rhs, rhs_length)) == 0; } -#endif template inline @@ -563,15 +573,21 @@ basic_nsAReadableString::Compare( const basic_nsAReadableString& r return ::Compare(*this, rhs); } -#if 0 template inline int -basic_nsAReadableString::Compare( const basic_nsLiteralString& rhs ) const +basic_nsAReadableString::Compare( const CharT* rhs ) const { - return ::Compare(*this, rhs); + return ::Compare(*this, basic_nsLiteralString(rhs)); + } + +template +inline +int +basic_nsAReadableString::Compare( const CharT* rhs, PRUint32 rhs_length ) const + { + return ::Compare(*this, basic_nsLiteralString(rhs, rhs_length)); } -#endif diff --git a/mozilla/xpcom/string/public/nsAReadableString.h b/mozilla/xpcom/string/public/nsAReadableString.h index 75ccda0e951..6f5cc6d54c4 100644 --- a/mozilla/xpcom/string/public/nsAReadableString.h +++ b/mozilla/xpcom/string/public/nsAReadableString.h @@ -268,11 +268,15 @@ class basic_nsAReadableString int Compare( const basic_nsAReadableString& rhs ) const; - // int Compare( const basic_nsLiteralString& rhs ) const; + int Compare( const CharT* ) const; + int Compare( const CharT*, PRUint32 ) const; +// int Compare( CharT ) const; // |Equals()| is a synonym for |Compare()| PRBool Equals( const basic_nsAReadableString& rhs ) const; - // PRBool Equals( const basic_nsLiteralString& rhs ) const; + PRBool Equals( const CharT* ) const; + PRBool Equals( const CharT*, PRUint32 ) const; +// PRBool Equals( CharT ) const; // Comparison operators are all synonyms for |Compare()| PRBool operator!=( const basic_nsAReadableString& rhs ) const { return Compare(rhs)!=0; } @@ -382,15 +386,21 @@ basic_nsAReadableString::Equals( const basic_nsAReadableString& rh return Compare(rhs) == 0; } -#if 0 template inline PRBool -basic_nsAReadableString::Equals( const basic_nsLiteralString& rhs ) const +basic_nsAReadableString::Equals( const CharT* rhs ) const { - return Compare(rhs) == 0; + return Compare(basic_nsLiteralString(rhs)) == 0; + } + +template +inline +PRBool +basic_nsAReadableString::Equals( const CharT* rhs, PRUint32 rhs_length ) const + { + return Compare(basic_nsLiteralString(rhs, rhs_length)) == 0; } -#endif template inline @@ -563,15 +573,21 @@ basic_nsAReadableString::Compare( const basic_nsAReadableString& r return ::Compare(*this, rhs); } -#if 0 template inline int -basic_nsAReadableString::Compare( const basic_nsLiteralString& rhs ) const +basic_nsAReadableString::Compare( const CharT* rhs ) const { - return ::Compare(*this, rhs); + return ::Compare(*this, basic_nsLiteralString(rhs)); + } + +template +inline +int +basic_nsAReadableString::Compare( const CharT* rhs, PRUint32 rhs_length ) const + { + return ::Compare(*this, basic_nsLiteralString(rhs, rhs_length)); } -#endif diff --git a/mozilla/xpcom/tests/StringFactoringTests/nsStdStringWrapper.h b/mozilla/xpcom/tests/StringFactoringTests/nsStdStringWrapper.h index 0dc2389eada..ff92b0ed221 100644 --- a/mozilla/xpcom/tests/StringFactoringTests/nsStdStringWrapper.h +++ b/mozilla/xpcom/tests/StringFactoringTests/nsStdStringWrapper.h @@ -136,11 +136,8 @@ class basic_nsStdStringWrapper mRawString.resize(aNewLength); } - virtual void Assign( const basic_nsAReadableString& ); - virtual void Append( const basic_nsAReadableString& ); - virtual void AppendChar( CharT ); - virtual void Insert( const basic_nsAReadableString&, PRUint32 pos ); - virtual void Cut( PRUint32 pos, PRUint32 len ); + protected: + virtual void do_AssignFromReadable( const basic_nsAReadableString& ); // ... }; @@ -198,48 +195,16 @@ basic_nsStdStringWrapper::GetWritableFragment( nsWri template void -basic_nsStdStringWrapper::Assign( const basic_nsAReadableString& rhs ) +basic_nsStdStringWrapper::do_AssignFromReadable( const basic_nsAReadableString& rhs ) { typedef basic_nsStdStringWrapper this_t; if ( SameImplementation(*this, rhs) ) mRawString = NS_STATIC_CAST(this_t, rhs).mRawString; else - { - mRawString.reserve(rhs.Length()); - basic_nsAWritableString::Assign(rhs); - } + basic_nsAWritableString::do_AssignFromReadable(rhs); } -template -void -basic_nsStdStringWrapper::Append( const basic_nsAReadableString& rhs ) - { - mRawString.append(rhs.BeginReading(), rhs.EndReading()); - } - -template -void -basic_nsStdStringWrapper::AppendChar( CharT c ) - { - mRawString.append(1, c); - } - -template -void -basic_nsStdStringWrapper::Insert( const basic_nsAReadableString& rhs, PRUint32 atPosition ) - { - mRawString.insert(mRawString.begin()+atPosition, rhs.BeginReading(), rhs.EndReading()); - } - -template -void -basic_nsStdStringWrapper::Cut( PRUint32 cutStart, PRUint32 cutLength ) - { - mRawString.erase(cutStart, cutLength); - } - - typedef basic_nsStdStringWrapper nsStdString; typedef basic_nsStdStringWrapper nsStdCString; diff --git a/mozilla/xpcom/tests/StringFactoringTests/profile_main.cpp b/mozilla/xpcom/tests/StringFactoringTests/profile_main.cpp index f998ec61767..5b04f8833e7 100644 --- a/mozilla/xpcom/tests/StringFactoringTests/profile_main.cpp +++ b/mozilla/xpcom/tests/StringFactoringTests/profile_main.cpp @@ -277,7 +277,7 @@ test_repeated_append_char() nsCString s1; for ( int j=0; j<1000; ++j ) { - s1.AppendChar('e'); + s1.Append('e'); len += TotalLength(s1); } } diff --git a/mozilla/xpcom/tests/StringFactoringTests/test_main.cpp b/mozilla/xpcom/tests/StringFactoringTests/test_main.cpp index ca66d4b246d..55c89dbe27e 100644 --- a/mozilla/xpcom/tests/StringFactoringTests/test_main.cpp +++ b/mozilla/xpcom/tests/StringFactoringTests/test_main.cpp @@ -1,5 +1,8 @@ #include +#define TEST_STD_STRING + + #include "nsString.h" #include "nsSharedString.h" #ifdef TEST_STD_STRING @@ -99,7 +102,7 @@ test_multifragment_iterators( const basic_nsAReadableString& aString ) does not have the same bug. Make sure the first fragment is only one character long. */ { - typedef typename basic_nsAReadableString::ConstIterator ConstIterator; + typedef typename basic_nsAReadableString::const_iterator ConstIterator; int tests_failed = 0; @@ -155,7 +158,7 @@ test_readable_hello( const basic_nsAReadableString& aReadable ) ++tests_failed; } - basic_nsAReadableString::ConstIterator iter = aReadable.BeginReading(); + basic_nsAReadableString::const_iterator iter = aReadable.BeginReading(); if ( *iter != CharT('H') ) { cout << "FAILED |test_readable_hello|: didn't start out pointing to the right thing, or else couldn't be dereferenced. --> '" << *iter << "'" << endl; @@ -178,14 +181,14 @@ test_readable_hello( const basic_nsAReadableString& aReadable ) ++tests_failed; } - basic_nsAReadableString::ConstIterator iter1 = aReadable.BeginReading(3); + basic_nsAReadableString::const_iterator iter1 = aReadable.BeginReading(3); if ( *iter1 != CharT('l') ) { cout << "FAILED |test_readable_hello|: iterator couldn't be set to |BeginReading(n)|, or else couldn't be dereferenced. --> '" << *iter1 << "'" << endl; ++tests_failed; } - basic_nsAReadableString::ConstIterator iter2 = aReadable.EndReading(2); + basic_nsAReadableString::const_iterator iter2 = aReadable.EndReading(2); if ( *iter2 != CharT('l') ) { cout << "FAILED |test_readable_hello|: iterator couldn't be set to |EndReading(n)|, or else couldn't be dereferenced. --> '" << *iter2 << "'" << endl;