*aFullAddress = NS_ConvertUTF8toUCS2(result ? result : (const char*)fullAddress).ToNewUnicode();
*aFullAddress = ToNewUnicode(NS_ConvertUTF8toUCS2(result ? result : (const char*)fullAddress));
NS_IMETHODIMP nsMsgHeaderParserResult::GetAddressAndName(PRUnichar ** aAddress, PRUnichar ** aName, PRUnichar ** aFullAddress){  nsresult rv = NS_OK;  char *result;  if (aAddress)  {    result = MIME_DecodeMimeHeader(mCurrentAddress, NULL, PR_FALSE, PR_TRUE);    *aAddress = NS_ConvertUTF8toUCS2(result ? result : mCurrentAddress).ToNewUnicode();    PR_FREEIF(result);  }  if (aName)  {    result = MIME_DecodeMimeHeader(mCurrentName, NULL, PR_FALSE, PR_TRUE);    *aName = NS_ConvertUTF8toUCS2(result ? result : mCurrentName).ToNewUnicode();    PR_FREEIF(result);  }  if (aFullAddress)  {    nsXPIDLCString fullAddress;    rv = mHeaderParser->MakeFullAddress("UTF-8", mCurrentName,                                        mCurrentAddress,                                        getter_Copies(fullAddress));    if (NS_SUCCEEDED(rv) && (const char*)fullAddress)    {      result = MIME_DecodeMimeHeader(fullAddress, NULL, PR_FALSE, PR_TRUE);      *aFullAddress = NS_ConvertUTF8toUCS2(result ? result : (const char*)fullAddress).ToNewUnicode();      PR_FREEIF(result);    }  }  return rv;}