NSS_IMPLEMENT PRStatus nssTrustDomain_DestroyCache ( NSSTrustDomain *td ) { if (!td->cache) { nss_SetError(NSS_ERROR_INTERNAL_ERROR); return PR_FAILURE; } if (nssHash_Count(td->cache->issuerAndSN) > 0) { nss_SetError(NSS_ERROR_BUSY); return PR_FAILURE; } PZ_DestroyLock(td->cache->lock); nssHash_Destroy(td->cache->issuerAndSN); nssHash_Destroy(td->cache->subject); nssHash_Destroy(td->cache->nickname); nssHash_Destroy(td->cache->email); nssArena_Destroy(td->cache->arena); td->cache = NULL; #ifdef DEBUG_CACHE PR_LOG(s_log, PR_LOG_DEBUG, ("Cache destroyed.")); #endif return PR_SUCCESS; }
NSS_IMPLEMENT PRStatus nssCertificateStore_Destroy ( nssCertificateStore *store ) { if (nssHash_Count(store->issuer_and_serial) > 0) { nss_SetError(NSS_ERROR_BUSY); return PR_FAILURE; } PZ_DestroyLock(store->lock); nssHash_Destroy(store->issuer_and_serial); nssHash_Destroy(store->subject); if (store->i_alloced_arena) { nssArena_Destroy(store->arena); } else { nss_ZFreeIf(store); } return PR_SUCCESS; }