Possible fix for leaks during entry expiry / truncation (#340)

This commit is contained in:
Tony Levi 2016-06-28 14:59:20 +09:30
parent 676b2090fb
commit d57c12d3c3

View File

@ -496,10 +496,12 @@ bool StatCache::TruncateCache(void)
for(stat_cache_t::iterator iter = stat_cache.begin(); iter != stat_cache.end(); ){
stat_cache_entry* entry = iter->second;
if(!entry || (0L < entry->notruncate && IsExpireStatCacheTime(entry->cache_date, ExpireTime))){
stat_cache.erase(iter++);
}else{
++iter;
if(entry){
delete entry;
}
stat_cache.erase(iter);
}
++iter;
}
}
@ -532,6 +534,9 @@ bool StatCache::TruncateCache(void)
stat_cache_t::iterator siter = *iiter;
S3FS_PRN_DBG("truncate stat cache[path=%s]", siter->first.c_str());
if(siter->second){
delete siter->second;
}
stat_cache.erase(siter);
}
S3FS_MALLOCTRIM(0);