diff --git a/mozilla/string/obsolete/bufferRoutines.h b/mozilla/string/obsolete/bufferRoutines.h index b41fa7f74b1..81bd1cc17e1 100644 --- a/mozilla/string/obsolete/bufferRoutines.h +++ b/mozilla/string/obsolete/bufferRoutines.h @@ -706,7 +706,6 @@ inline PRInt32 RFindChar2(const char* aDest,PRUint32 aDestLength,PRInt32 anOffse typedef PRInt32 (*FindChars)(const char* aDest,PRUint32 aDestLength,PRInt32 anOffset,const PRUnichar aChar,PRBool aIgnoreCase,PRInt32 aCount); FindChars gFindChars[]={&FindChar1,&FindChar2}; -FindChars gRFindChars[]={&RFindChar1,&RFindChar2}; //---------------------------------------------------------------------------------------- // diff --git a/mozilla/string/obsolete/nsStr.cpp b/mozilla/string/obsolete/nsStr.cpp index fbdbddc4b5b..4d2586b8131 100644 --- a/mozilla/string/obsolete/nsStr.cpp +++ b/mozilla/string/obsolete/nsStr.cpp @@ -565,8 +565,13 @@ PRInt32 nsStr::RFindSubstr(const nsStr& aDest,const nsStr& aTarget,PRBool aIgnor * @param aCount tell us how many iterations to perform from offset; -1 means use full length. * @return index in aDest where member of aSet occurs, or -1 if not found */ -PRInt32 nsStr::RFindChar(const nsStr& aDest,PRUnichar aChar, PRBool aIgnoreCase,PRInt32 anOffset,PRInt32 aCount) { - return gRFindChars[aDest.mCharSize](aDest.mStr,aDest.mLength,anOffset,aChar,aIgnoreCase,aCount); +PRInt32 nsStr::RFindChar1(const nsStr& aDest,PRUnichar aChar, PRBool aIgnoreCase,PRInt32 anOffset,PRInt32 aCount) { + NS_ASSERTION(aDest.mCharSize == eOneByte, "Must be 1 bytes"); + return ::RFindChar1(aDest.mStr,aDest.mLength,anOffset,aChar,aIgnoreCase,aCount); +} +PRInt32 nsStr::RFindChar2(const nsStr& aDest,PRUnichar aChar, PRBool aIgnoreCase,PRInt32 anOffset,PRInt32 aCount) { + NS_ASSERTION(aDest.mCharSize == eTwoByte, "Must be 2 bytes"); + return ::RFindChar2(aDest.mStr,aDest.mLength,anOffset,aChar,aIgnoreCase,aCount); } @@ -599,6 +604,44 @@ PRInt32 nsStr::RFindCharInSet(const nsStr& aDest,const nsStr& aSet,PRBool aIgnor return kNotFound; } +// from the start of the old nsStr::StrCompare - now used as helper +// routines for nsStr::Compare1to1 and so forth +static inline PRInt32 +GetCompareCount(const PRInt32 aDestLength, const PRInt32 aSourceLength, + PRInt32 aCount) +{ + PRInt32 minlen=(aSourceLengthaSource=1 */ -PRInt32 nsStr::StrCompare(const nsStr& aDest,const nsStr& aSource,PRInt32 aCount,PRBool aIgnoreCase) { - PRInt32 result=0; - - if(aCount) { - PRInt32 minlen=(aSource.mLength */ - static PRInt32 StrCompare(const nsStr& aDest,const nsStr& aSource,PRInt32 aCount,PRBool aIgnoreCase); + static PRInt32 StrCompare1To1(const nsStr& aDest,const nsStr& aSource, + PRInt32 aCount,PRBool aIgnoreCase); + static PRInt32 StrCompare1To2(const nsStr& aDest, const nsStr& aSource, + PRInt32 aCount, PRBool aIgnoreCase); + static PRInt32 StrCompare2To1(const nsStr& aDest, const nsStr& aSource, + PRInt32 aCount, PRBool aIgnoreCase); + static PRInt32 StrCompare2To2(const nsStr& aDest, const nsStr& aSource, + PRInt32 aCount, PRBool aIgnoreCase); /** * These methods scan the given string for 1 or more chars in a given direction @@ -422,7 +429,8 @@ struct NS_COM nsStr { static PRInt32 FindCharInSet(const nsStr& aDest,const nsStr& aSet,PRBool aIgnoreCase,PRInt32 anOffset); static PRInt32 RFindSubstr(const nsStr& aDest,const nsStr& aSource, PRBool aIgnoreCase,PRInt32 anOffset,PRInt32 aCount); - static PRInt32 RFindChar(const nsStr& aDest,PRUnichar aChar, PRBool aIgnoreCase,PRInt32 anOffset,PRInt32 aCount); + static PRInt32 RFindChar1(const nsStr& aDest,PRUnichar aChar, PRBool aIgnoreCase,PRInt32 anOffset,PRInt32 aCount); + static PRInt32 RFindChar2(const nsStr& aDest,PRUnichar aChar, PRBool aIgnoreCase,PRInt32 anOffset,PRInt32 aCount); static PRInt32 RFindCharInSet(const nsStr& aDest,const nsStr& aSet,PRBool aIgnoreCase,PRInt32 anOffset); static void Overwrite(nsStr& aDest,const nsStr& aSource,PRInt32 anOffset); diff --git a/mozilla/string/obsolete/nsString.cpp b/mozilla/string/obsolete/nsString.cpp index 355f8a764c7..7876e542a15 100644 --- a/mozilla/string/obsolete/nsString.cpp +++ b/mozilla/string/obsolete/nsString.cpp @@ -1053,7 +1053,7 @@ PRInt32 nsCString::RFind(const char* aString,PRBool aIgnoreCase,PRInt32 anOffset * @return index in aDest where member of aSet occurs, or -1 if not found */ PRInt32 nsCString::RFindChar(PRUnichar aChar,PRBool aIgnoreCase,PRInt32 anOffset,PRInt32 aCount) const{ - PRInt32 result=nsStr::RFindChar(*this,aChar,aIgnoreCase,anOffset,aCount); + PRInt32 result=nsStr::RFindChar1(*this,aChar,aIgnoreCase,anOffset,aCount); return result; } @@ -1137,7 +1137,7 @@ PRInt32 nsCString::CompareWithConversion(const PRUnichar* aString,PRBool aIgnore nsStr::Initialize(temp,eTwoByte); temp.mLength=nsCRT::strlen(aString); temp.mUStr=(PRUnichar*)aString; - return nsStr::StrCompare(*this,temp,aCount,aIgnoreCase); + return nsStr::StrCompare1To2(*this,temp,aCount,aIgnoreCase); } return 0; } @@ -1158,7 +1158,7 @@ PRInt32 nsCString::CompareWithConversion(const char *aCString,PRBool aIgnoreCase nsStr::Initialize(temp,eOneByte); temp.mLength=nsCRT::strlen(aCString); temp.mStr=(char*)aCString; - return nsStr::StrCompare(*this,temp,aCount,aIgnoreCase); + return nsStr::StrCompare1To1(*this,temp,aCount,aIgnoreCase); } return 0; } diff --git a/mozilla/string/obsolete/nsString2.cpp b/mozilla/string/obsolete/nsString2.cpp index 241b6c4b97e..26c681047d7 100644 --- a/mozilla/string/obsolete/nsString2.cpp +++ b/mozilla/string/obsolete/nsString2.cpp @@ -1101,7 +1101,7 @@ PRInt32 nsString::RFind(const char* aString,PRBool aIgnoreCase,PRInt32 anOffset, */ #if 0 PRInt32 nsString::RFind(PRUnichar aChar,PRInt32 anOffset,PRBool aIgnoreCase) const{ - PRInt32 result=nsStr::RFindChar(*this,aChar,aIgnoreCase,anOffset); + PRInt32 result=nsStr::RFindChar2(*this,aChar,aIgnoreCase,anOffset); return result; } #endif @@ -1116,7 +1116,7 @@ PRInt32 nsString::RFind(PRUnichar aChar,PRInt32 anOffset,PRBool aIgnoreCase) con * @return offset of found char, or -1 (kNotFound) */ PRInt32 nsString::RFindChar(PRUnichar aChar,PRBool aIgnoreCase,PRInt32 anOffset,PRInt32 aCount) const{ - PRInt32 result=nsStr::RFindChar(*this,aChar,aIgnoreCase,anOffset,aCount); + PRInt32 result=nsStr::RFindChar2(*this,aChar,aIgnoreCase,anOffset,aCount); return result; } @@ -1204,7 +1204,7 @@ PRInt32 nsString::CompareWithConversion(const char *aCString,PRBool aIgnoreCase, temp.mLength= (0aSource=1 */ -PRInt32 nsStr::StrCompare(const nsStr& aDest,const nsStr& aSource,PRInt32 aCount,PRBool aIgnoreCase) { - PRInt32 result=0; - - if(aCount) { - PRInt32 minlen=(aSource.mLength */ - static PRInt32 StrCompare(const nsStr& aDest,const nsStr& aSource,PRInt32 aCount,PRBool aIgnoreCase); + static PRInt32 StrCompare1To1(const nsStr& aDest,const nsStr& aSource, + PRInt32 aCount,PRBool aIgnoreCase); + static PRInt32 StrCompare1To2(const nsStr& aDest, const nsStr& aSource, + PRInt32 aCount, PRBool aIgnoreCase); + static PRInt32 StrCompare2To1(const nsStr& aDest, const nsStr& aSource, + PRInt32 aCount, PRBool aIgnoreCase); + static PRInt32 StrCompare2To2(const nsStr& aDest, const nsStr& aSource, + PRInt32 aCount, PRBool aIgnoreCase); /** * These methods scan the given string for 1 or more chars in a given direction @@ -422,7 +429,8 @@ struct NS_COM nsStr { static PRInt32 FindCharInSet(const nsStr& aDest,const nsStr& aSet,PRBool aIgnoreCase,PRInt32 anOffset); static PRInt32 RFindSubstr(const nsStr& aDest,const nsStr& aSource, PRBool aIgnoreCase,PRInt32 anOffset,PRInt32 aCount); - static PRInt32 RFindChar(const nsStr& aDest,PRUnichar aChar, PRBool aIgnoreCase,PRInt32 anOffset,PRInt32 aCount); + static PRInt32 RFindChar1(const nsStr& aDest,PRUnichar aChar, PRBool aIgnoreCase,PRInt32 anOffset,PRInt32 aCount); + static PRInt32 RFindChar2(const nsStr& aDest,PRUnichar aChar, PRBool aIgnoreCase,PRInt32 anOffset,PRInt32 aCount); static PRInt32 RFindCharInSet(const nsStr& aDest,const nsStr& aSet,PRBool aIgnoreCase,PRInt32 anOffset); static void Overwrite(nsStr& aDest,const nsStr& aSource,PRInt32 anOffset); diff --git a/mozilla/xpcom/string/obsolete/nsString.cpp b/mozilla/xpcom/string/obsolete/nsString.cpp index 355f8a764c7..7876e542a15 100644 --- a/mozilla/xpcom/string/obsolete/nsString.cpp +++ b/mozilla/xpcom/string/obsolete/nsString.cpp @@ -1053,7 +1053,7 @@ PRInt32 nsCString::RFind(const char* aString,PRBool aIgnoreCase,PRInt32 anOffset * @return index in aDest where member of aSet occurs, or -1 if not found */ PRInt32 nsCString::RFindChar(PRUnichar aChar,PRBool aIgnoreCase,PRInt32 anOffset,PRInt32 aCount) const{ - PRInt32 result=nsStr::RFindChar(*this,aChar,aIgnoreCase,anOffset,aCount); + PRInt32 result=nsStr::RFindChar1(*this,aChar,aIgnoreCase,anOffset,aCount); return result; } @@ -1137,7 +1137,7 @@ PRInt32 nsCString::CompareWithConversion(const PRUnichar* aString,PRBool aIgnore nsStr::Initialize(temp,eTwoByte); temp.mLength=nsCRT::strlen(aString); temp.mUStr=(PRUnichar*)aString; - return nsStr::StrCompare(*this,temp,aCount,aIgnoreCase); + return nsStr::StrCompare1To2(*this,temp,aCount,aIgnoreCase); } return 0; } @@ -1158,7 +1158,7 @@ PRInt32 nsCString::CompareWithConversion(const char *aCString,PRBool aIgnoreCase nsStr::Initialize(temp,eOneByte); temp.mLength=nsCRT::strlen(aCString); temp.mStr=(char*)aCString; - return nsStr::StrCompare(*this,temp,aCount,aIgnoreCase); + return nsStr::StrCompare1To1(*this,temp,aCount,aIgnoreCase); } return 0; } diff --git a/mozilla/xpcom/string/obsolete/nsString2.cpp b/mozilla/xpcom/string/obsolete/nsString2.cpp index 241b6c4b97e..26c681047d7 100644 --- a/mozilla/xpcom/string/obsolete/nsString2.cpp +++ b/mozilla/xpcom/string/obsolete/nsString2.cpp @@ -1101,7 +1101,7 @@ PRInt32 nsString::RFind(const char* aString,PRBool aIgnoreCase,PRInt32 anOffset, */ #if 0 PRInt32 nsString::RFind(PRUnichar aChar,PRInt32 anOffset,PRBool aIgnoreCase) const{ - PRInt32 result=nsStr::RFindChar(*this,aChar,aIgnoreCase,anOffset); + PRInt32 result=nsStr::RFindChar2(*this,aChar,aIgnoreCase,anOffset); return result; } #endif @@ -1116,7 +1116,7 @@ PRInt32 nsString::RFind(PRUnichar aChar,PRInt32 anOffset,PRBool aIgnoreCase) con * @return offset of found char, or -1 (kNotFound) */ PRInt32 nsString::RFindChar(PRUnichar aChar,PRBool aIgnoreCase,PRInt32 anOffset,PRInt32 aCount) const{ - PRInt32 result=nsStr::RFindChar(*this,aChar,aIgnoreCase,anOffset,aCount); + PRInt32 result=nsStr::RFindChar2(*this,aChar,aIgnoreCase,anOffset,aCount); return result; } @@ -1204,7 +1204,7 @@ PRInt32 nsString::CompareWithConversion(const char *aCString,PRBool aIgnoreCase, temp.mLength= (0