Index: net/disk_cache/backend_impl.cc |
=================================================================== |
--- net/disk_cache/backend_impl.cc (revision 6847) |
+++ net/disk_cache/backend_impl.cc (working copy) |
@@ -355,7 +355,7 @@ |
data_->header.num_entries++; |
DCHECK(data_->header.num_entries > 0); |
- rankings_.Insert(cache_entry->rankings(), true); |
+ rankings_.Insert(cache_entry->rankings(), true, Rankings::NO_USE); |
if (!parent.get()) |
data_->table[hash & mask_] = entry_address.value(); |
@@ -573,9 +573,10 @@ |
return &data_->header.lru; |
} |
-void BackendImpl::UpdateRank(CacheRankingsBlock* node, bool modified) { |
- if (!read_only_) |
- rankings_.UpdateRank(node, modified); |
+void BackendImpl::UpdateRank(EntryImpl* entry, bool modified) { |
+ if (!read_only_) { |
+ rankings_.UpdateRank(entry->rankings(), modified, Rankings::NO_USE); |
+ } |
} |
void BackendImpl::RecoveredEntry(CacheRankingsBlock* rankings) { |
@@ -603,7 +604,7 @@ |
Trace("Doom entry 0x%p", entry); |
- rankings_.Remove(entry->rankings()); |
+ rankings_.Remove(entry->rankings(), Rankings::NO_USE); |
entry->InternalDoom(); |
@@ -971,8 +972,9 @@ |
Rankings::ScopedRankingsBlock rankings(&rankings_, |
reinterpret_cast<CacheRankingsBlock*>(*iter)); |
- CacheRankingsBlock* next_block = forward ? rankings_.GetNext(rankings.get()) : |
- rankings_.GetPrev(rankings.get()); |
+ CacheRankingsBlock* next_block = forward ? |
+ rankings_.GetNext(rankings.get(), Rankings::NO_USE) : |
+ rankings_.GetPrev(rankings.get(), Rankings::NO_USE); |
Rankings::ScopedRankingsBlock next(&rankings_, next_block); |
*next_entry = NULL; |
*iter = NULL; |
@@ -1018,7 +1020,7 @@ |
LOG(WARNING) << "Destroying invalid entry."; |
Trace("Destroying invalid entry 0x%p", entry); |
- rankings_.Remove(entry->rankings()); |
+ rankings_.Remove(entry->rankings(), Rankings::NO_USE); |
entry->SetPointerForInvalidEntry(GetCurrentEntryId()); |
entry->InternalDoom(); |
@@ -1035,13 +1037,14 @@ |
Time start = Time::Now(); |
Rankings::ScopedRankingsBlock node(&rankings_); |
- Rankings::ScopedRankingsBlock next(&rankings_, rankings_.GetPrev(node.get())); |
+ Rankings::ScopedRankingsBlock next(&rankings_, |
+ rankings_.GetPrev(node.get(), Rankings::NO_USE)); |
DCHECK(next.get()); |
int target_size = empty ? 0 : LowWaterAdjust(max_size_); |
int deleted = 0; |
while (data_->header.num_bytes > target_size && next.get()) { |
node.reset(next.release()); |
- next.reset(rankings_.GetPrev(node.get())); |
+ next.reset(rankings_.GetPrev(node.get(), Rankings::NO_USE)); |
if (!node->Data()->pointer || empty) { |
// This entry is not being used by anybody. |
EntryImpl* entry; |