*copy_string(aSource.BeginReading(), aSource.EndReading(), result) = PRUnichar(0);
copy_string(aSource.BeginReading(), aSource.EndReading(), LossyConvertEncoding<char, PRUnichar>(result)).write_terminator();
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;  }