for (i=0; i<count; i++) nssCertificate_AddRef(rvArray[i]);
nssCertificateStore_FindCertificatesBySubject(  nssCertificateStore *store,  NSSDER *subject,  NSSCertificate *rvOpt[],  PRUint32 maximumOpt,  NSSArena *arenaOpt){    PRUint32 i, count;    NSSCertificate **rvArray = NULL;    nssList *subjectList;    PZ_Lock(store->lock);    subjectList = (nssList *)nssHash_Lookup(store->subject, subject);    PZ_Unlock(store->lock);    if (subjectList) {	count = nssList_Count(subjectList);	if (maximumOpt > 0) {	    count = PR_MIN(maximumOpt, count);	}	if (rvOpt) {	    nssList_GetArray(subjectList, (void **)rvOpt, count);	    for (i=0; i<count; i++) nssCertificate_AddRef(rvOpt[i]);	} else {	    rvArray = nss_ZNEWARRAY(arenaOpt, NSSCertificate *, count + 1);	    if (!rvArray) {		return (NSSCertificate **)NULL;	    }	    nssList_GetArray(subjectList, (void **)rvArray, count);	    for (i=0; i<count; i++) nssCertificate_AddRef(rvArray[i]);	}    }    return rvArray;}