Fixing bug 243484. Adding 'count' out params to ToNewUTF8String() and UTF8ToNewUnicode() that tells the caller how many units (8 or 16 bit) that was returned. r=dbaron@dbaron.org, sr=darin@meer.net

git-svn-id: svn://10.0.0.236/trunk@156361 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
jst%mozilla.jstenback.com
2004-05-13 17:45:03 +00:00
parent fd49d1a9e1
commit 96a9ce3c14
2 changed files with 12 additions and 4 deletions

View File

@@ -325,13 +325,16 @@ ToNewCString( const nsAString& aSource )
NS_COM
char*
ToNewUTF8String( const nsAString& aSource )
ToNewUTF8String( const nsAString& aSource, PRUint32 *aUTF8Count )
{
nsAString::const_iterator start, end;
CalculateUTF8Size calculator;
copy_string(aSource.BeginReading(start), aSource.EndReading(end),
calculator);
if (aUTF8Count)
*aUTF8Count = calculator.Size();
char *result = NS_STATIC_CAST(char*,
nsMemory::Alloc(calculator.Size() + 1));
@@ -385,13 +388,16 @@ ToNewUnicode( const nsACString& aSource )
NS_COM
PRUnichar*
UTF8ToNewUnicode( const nsACString& aSource )
UTF8ToNewUnicode( const nsACString& aSource, PRUint32 *aUTF16Count )
{
nsACString::const_iterator start, end;
CalculateUTF8Length calculator;
copy_string(aSource.BeginReading(start), aSource.EndReading(end),
calculator);
if (aUTF16Count)
*aUTF16Count = calculator.Length();
PRUnichar *result = NS_STATIC_CAST(PRUnichar*,
nsMemory::Alloc(sizeof(PRUnichar) * (calculator.Length() + 1)));