Bug 1250439 - preven memory leak in Classifier::GetLookupCache. r?gcp
MozReview-Commit-ID: BlROMq9gFzj
--- a/toolkit/components/url-classifier/Classifier.cpp
+++ b/toolkit/components/url-classifier/Classifier.cpp
@@ -687,30 +687,30 @@ LookupCache *
Classifier::GetLookupCache(const nsACString& aTable)
{
for (uint32_t i = 0; i < mLookupCaches.Length(); i++) {
if (mLookupCaches[i]->TableName().Equals(aTable)) {
return mLookupCaches[i];
}
}
- LookupCache *cache = new LookupCache(aTable, mStoreDirectory);
+ UniquePtr<LookupCache> cache(new LookupCache(aTable, mStoreDirectory));
nsresult rv = cache->Init();
if (NS_FAILED(rv)) {
return nullptr;
}
rv = cache->Open();
if (NS_FAILED(rv)) {
if (rv == NS_ERROR_FILE_CORRUPTED) {
Reset();
}
return nullptr;
}
- mLookupCaches.AppendElement(cache);
- return cache;
+ mLookupCaches.AppendElement(cache.get());
+ return cache.release();
}
nsresult
Classifier::ReadNoiseEntries(const Prefix& aPrefix,
const nsACString& aTableName,
uint32_t aCount,
PrefixArray* aNoiseEntries)
{