nsresult FaviconHelper::HashURI(nsCOMPtr<nsICryptoHash> &aCryptoHash, nsIURI *aUri, nsACString& aUriHash) { if (!aUri) return NS_ERROR_INVALID_ARG; nsAutoCString spec; nsresult rv = aUri->GetSpec(spec); NS_ENSURE_SUCCESS(rv, rv); if (!aCryptoHash) { aCryptoHash = do_CreateInstance(NS_CRYPTO_HASH_CONTRACTID, &rv); NS_ENSURE_SUCCESS(rv, rv); } rv = aCryptoHash->Init(nsICryptoHash::MD5); NS_ENSURE_SUCCESS(rv, rv); rv = aCryptoHash->Update(reinterpret_cast<const uint8_t*>(spec.BeginReading()), spec.Length()); NS_ENSURE_SUCCESS(rv, rv); rv = aCryptoHash->Finish(true, aUriHash); NS_ENSURE_SUCCESS(rv, rv); return NS_OK; }
~MimeCMSdata() { if(sender_addr) PR_Free(sender_addr); // Do an orderly release of nsICMSDecoder and nsICMSMessage // if (decoder_context) { nsCOMPtr<nsICMSMessage> cinfo; decoder_context->Finish(getter_AddRefs(cinfo)); } }
~MimeMultCMSdata() { PR_FREEIF(sender_addr); // Do a graceful shutdown of the nsICMSDecoder and release the nsICMSMessage // if (sig_decoder_context) { nsCOMPtr<nsICMSMessage> cinfo; sig_decoder_context->Finish(getter_AddRefs(cinfo)); } delete [] item_data; }