*copy_string(aSource.BeginReading(), aSource.EndReading(), result) = PRUnichar(0);
nsReadingIterator<PRUnichar> fromBegin, fromEnd; PRUnichar* toBegin = result; *copy_string(aSource.BeginReading(fromBegin), aSource.EndReading(fromEnd), toBegin) = PRUnichar(0);
ToNewUnicode( const nsAReadableString& aSource )  {    // no conversion needed, just allocate a buffer of the correct length and copy into it    PRUnichar* result = AllocateStringCopy(aSource, (PRUnichar*)0);    *copy_string(aSource.BeginReading(), aSource.EndReading(), result) = PRUnichar(0);    return result;  }