changes to fix some errors constructing autostrings from null pointers that led to crashes

git-svn-id: svn://10.0.0.236/trunk@69730 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
scc%netscape.com
2000-05-15 03:10:19 +00:00
parent ebfb0669da
commit 879df1b115
15 changed files with 54 additions and 12 deletions

View File

@@ -1881,6 +1881,12 @@ nsCAutoString::nsCAutoString( const nsCString& aString ) : nsCString(){
}
nsCAutoString::nsCAutoString(const char* aCString) : nsCString() {
Initialize(*this,mBuffer,sizeof(mBuffer)-1,0,eOneByte,PR_FALSE);
AddNullTerminator(*this);
Append(aCString);
}
/**
* Copy construct from ascii c-string
* @param aCString is a ptr to a 1-byte cstr

View File

@@ -815,7 +815,8 @@ public:
nsCAutoString();
nsCAutoString(const nsCString& );
nsCAutoString(const char* aString,PRInt32 aLength=-1);
nsCAutoString(const char* aString);
nsCAutoString(const char* aString,PRInt32 aLength);
nsCAutoString(const CBufDescriptor& aBuffer);
#ifndef NEW_STRING_APIS

View File

@@ -2281,6 +2281,12 @@ nsAutoString::nsAutoString() : nsString() {
AddNullTerminator(*this);
}
nsAutoString::nsAutoString(const PRUnichar* aString) : nsString() {
Initialize(*this,mBuffer,(sizeof(mBuffer)>>eTwoByte)-1,0,eTwoByte,PR_FALSE);
AddNullTerminator(*this);
Append(aString);
}
/**
* Copy construct from uni-string
* @param aString is a ptr to a unistr

View File

@@ -908,7 +908,8 @@ public:
nsAutoString();
nsAutoString(const nsAutoString& aString);
nsAutoString(const nsString& aString);
nsAutoString(const PRUnichar* aString,PRInt32 aLength=-1);
nsAutoString(const PRUnichar* aString);
nsAutoString(const PRUnichar* aString,PRInt32 aLength);
nsAutoString(PRUnichar aChar);
nsAutoString(const CBufDescriptor& aBuffer);

View File

@@ -656,7 +656,7 @@ class basic_nsLiteralString
if ( aLength == PRUint32(-1) )
{
// NS_WARNING("Tell scc: Caller constructing a string doesn't know the real length. Please use the other constructor.");
mEnd = mStart + nsCharTraits<CharT>::length(mStart);
mEnd = mStart ? (mStart + nsCharTraits<CharT>::length(mStart)) : mStart;
}
}
@@ -1093,7 +1093,7 @@ copy_string_backward( InputIterator first, InputIterator last, OutputIterator re
NS_ASSERTION(lengthToCopy, "|copy_string_backward| will never terminate");
nsCharTraits<OutputIterator::value_type>::move(result.operator->()-lengthToCopy, last.operator->()-lengthToCopy, lengthToCopy);
nsCharTraits<typename OutputIterator::value_type>::move(result.operator->()-lengthToCopy, last.operator->()-lengthToCopy, lengthToCopy);
last -= PRInt32(lengthToCopy);
result -= PRInt32(lengthToCopy);