} else { NSSCertificate_Destroy(c);
nssTrustDomain_AddCertsToCache(  NSSTrustDomain *td,  NSSCertificate **certs,  PRUint32 numCerts){    PRUint32 i;    NSSError e;    for (i=0; i<numCerts && certs[i]; i++) {	if (add_cert_to_cache(td, certs[i]) != PR_SUCCESS) {	    if ((e = NSS_GetError()) == NSS_ERROR_CERTIFICATE_IN_CACHE) {		/* collision - delete and replace the cert here in favor		 * of the already cached entry.  This is safe as long as		 * the cert being added here only has a single reference.		 * This should be the case as this function is only called		 * immediately following a traversal and before any certs		 * are returned to the caller.		 */		NSSCertificate *c;		c = nssTrustDomain_GetCertForIssuerAndSNFromCache(td,		                                            &certs[i]->issuer,		                                            &certs[i]->serial);		if (c != certs[i]) {		    NSSCertificate_Destroy(certs[i]);		    certs[i] = c;		}		nss_ClearErrorStack();		continue;	    }	    return PR_FAILURE;	}     }    return PR_SUCCESS;}