if (!rvArray) { return (NSSCertificate **)NULL;
if (rvArray) { nssList_GetArray(nt.subjectList, (void **)rvArray, count);
nssCertificateStore_FindCertificatesByNickname(  nssCertificateStore *store,  NSSUTF8 *nickname,  NSSCertificate *rvOpt[],  PRUint32 maximumOpt,  NSSArena *arenaOpt){    PRUint32 count;    NSSCertificate **rvArray = NULL;    struct nickname_template_str nt;    nt.nickname = nickname;    nt.subjectList = NULL;    PZ_Lock(store->lock);    nssHash_Iterate(store->subject, match_nickname, &nt);    if (nt.subjectList) {	/* get references before leaving the store's lock protection */	nssCertificateList_AddReferences(nt.subjectList);    }    PZ_Unlock(store->lock);    if (nt.subjectList) {	count = nssList_Count(nt.subjectList);	if (maximumOpt > 0) {	    count = PR_MIN(maximumOpt, count);	}	if (rvOpt) {	    nssList_GetArray(nt.subjectList, (void **)rvOpt, count);	} else {	    rvArray = nss_ZNEWARRAY(arenaOpt, NSSCertificate *, count + 1);	    if (!rvArray) {		return (NSSCertificate **)NULL;	    }	    nssList_GetArray(nt.subjectList, (void **)rvArray, count);	}    }    return rvArray;}