}  if (cache->crls) { PR_Free(cache->crls);
SECStatus DPCache_Destroy(CRLDPCache* cache){    PRUint32 i = 0;    PR_ASSERT(cache);    if (!cache) {        return SECFailure;    }    if (cache->lock)    {#ifdef USE_RWLOCK        NSSRWLock_Destroy(cache->lock);#else        PR_DestroyLock(cache->lock);#endif    }    /* destroy all our CRL objects */    for (i=0;i<cache->ncrls;i++)    {        SEC_DestroyCrl(cache->crls[i]);    }    /* destroy the hash table */    if (cache->entries)    {        PL_HashTableDestroy(cache->entries);    }    /* free the pre buffer */    if (cache->prebuffer)    {        PreAllocator_Destroy(cache->prebuffer);    }    /* destroy the cert */    if (cache->issuer)    {        CERT_DestroyCertificate(cache->issuer);    }    /* free the subject */    if (cache->subject)    {        SECITEM_FreeItem(cache->subject, PR_TRUE);    }    /* free the distribution points */    if (cache->distributionPoint)    {        SECITEM_FreeItem(cache->distributionPoint, PR_TRUE);    }    return SECSuccess;}