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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user