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