char *from; nsresult rv = identity->GetEmail(&from);
nsXPIDLCString from; nsresult rv = identity->GetEmail(getter_Copies(from));
msg_generate_message_id (nsIMsgIdentity *identity){	PRUint32 now;	PRTime prNow = PR_Now();	PRInt64 microSecondsPerSecond, intermediateResult;		LL_I2L(microSecondsPerSecond, PR_USEC_PER_SEC);	LL_DIV(intermediateResult, prNow, microSecondsPerSecond);    LL_L2UI(now, intermediateResult);	PRUint32 salt = 0;	const char *host = 0;  	char *from;  nsresult rv = identity->GetEmail(&from);  if (NS_FAILED(rv)) return nsnull;	GenerateGlobalRandomBytes((unsigned char *) &salt, sizeof(salt));	if (from) {		host = PL_strchr (from, '@');		if (host) {			const char *s;			for (s = ++host; *s; s++)				if (!XP_IS_ALPHA(*s) && !XP_IS_DIGIT(*s) &&						*s != '-' && *s != '_' && *s != '.') {					host = 0;					break;				}		}	}	if (! host)	/* If we couldn't find a valid host name to use, we can't generate a	   valid message ID, so bail, and let NNTP and SMTP generate them. */		return 0;	return PR_smprintf("<%lX.%lX@%s>",					 (unsigned long) now, (unsigned long) salt, host);}