| OLD | NEW | 
|     1 // Copyright (c) 2006-2010 The Chromium Authors. All rights reserved. |     1 // Copyright (c) 2006-2010 The Chromium Authors. All rights reserved. | 
|     2 // Use of this source code is governed by a BSD-style license that can be |     2 // Use of this source code is governed by a BSD-style license that can be | 
|     3 // found in the LICENSE file. |     3 // found in the LICENSE file. | 
|     4  |     4  | 
|     5 #include "net/disk_cache/backend_impl.h" |     5 #include "net/disk_cache/backend_impl.h" | 
|     6  |     6  | 
|     7 #include "base/field_trial.h" |     7 #include "base/field_trial.h" | 
|     8 #include "base/file_path.h" |     8 #include "base/file_path.h" | 
|     9 #include "base/file_util.h" |     9 #include "base/file_util.h" | 
|    10 #include "base/histogram.h" |    10 #include "base/histogram.h" | 
| (...skipping 760 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   771   scoped_ptr<Rankings::Iterator> iterator( |   771   scoped_ptr<Rankings::Iterator> iterator( | 
|   772       reinterpret_cast<Rankings::Iterator*>(iter)); |   772       reinterpret_cast<Rankings::Iterator*>(iter)); | 
|   773 } |   773 } | 
|   774  |   774  | 
|   775 EntryImpl* BackendImpl::OpenEntryImpl(const std::string& key) { |   775 EntryImpl* BackendImpl::OpenEntryImpl(const std::string& key) { | 
|   776   if (disabled_) |   776   if (disabled_) | 
|   777     return NULL; |   777     return NULL; | 
|   778  |   778  | 
|   779   TimeTicks start = TimeTicks::Now(); |   779   TimeTicks start = TimeTicks::Now(); | 
|   780   uint32 hash = Hash(key); |   780   uint32 hash = Hash(key); | 
 |   781   Trace("Open hash 0x%x", hash); | 
|   781  |   782  | 
|   782   EntryImpl* cache_entry = MatchEntry(key, hash, false); |   783   EntryImpl* cache_entry = MatchEntry(key, hash, false); | 
|   783   if (!cache_entry) { |   784   if (!cache_entry) { | 
|   784     stats_.OnEvent(Stats::OPEN_MISS); |   785     stats_.OnEvent(Stats::OPEN_MISS); | 
|   785     return NULL; |   786     return NULL; | 
|   786   } |   787   } | 
|   787  |   788  | 
|   788   if (ENTRY_NORMAL != cache_entry->entry()->Data()->state) { |   789   if (ENTRY_NORMAL != cache_entry->entry()->Data()->state) { | 
|   789     // The entry was already evicted. |   790     // The entry was already evicted. | 
|   790     cache_entry->Release(); |   791     cache_entry->Release(); | 
|   791     stats_.OnEvent(Stats::OPEN_MISS); |   792     stats_.OnEvent(Stats::OPEN_MISS); | 
|   792     return NULL; |   793     return NULL; | 
|   793   } |   794   } | 
|   794  |   795  | 
|   795   eviction_.OnOpenEntry(cache_entry); |   796   eviction_.OnOpenEntry(cache_entry); | 
|   796   entry_count_++; |   797   entry_count_++; | 
|   797  |   798  | 
|   798   CACHE_UMA(AGE_MS, "OpenTime", GetSizeGroup(), start); |   799   CACHE_UMA(AGE_MS, "OpenTime", GetSizeGroup(), start); | 
|   799   stats_.OnEvent(Stats::OPEN_HIT); |   800   stats_.OnEvent(Stats::OPEN_HIT); | 
|   800   return cache_entry; |   801   return cache_entry; | 
|   801 } |   802 } | 
|   802  |   803  | 
|   803 EntryImpl* BackendImpl::CreateEntryImpl(const std::string& key) { |   804 EntryImpl* BackendImpl::CreateEntryImpl(const std::string& key) { | 
|   804   if (disabled_ || key.empty()) |   805   if (disabled_ || key.empty()) | 
|   805     return NULL; |   806     return NULL; | 
|   806  |   807  | 
|   807   TimeTicks start = TimeTicks::Now(); |   808   TimeTicks start = TimeTicks::Now(); | 
|   808   uint32 hash = Hash(key); |   809   uint32 hash = Hash(key); | 
 |   810   Trace("Create hash 0x%x", hash); | 
|   809  |   811  | 
|   810   scoped_refptr<EntryImpl> parent; |   812   scoped_refptr<EntryImpl> parent; | 
|   811   Addr entry_address(data_->table[hash & mask_]); |   813   Addr entry_address(data_->table[hash & mask_]); | 
|   812   if (entry_address.is_initialized()) { |   814   if (entry_address.is_initialized()) { | 
|   813     // We have an entry already. It could be the one we are looking for, or just |   815     // We have an entry already. It could be the one we are looking for, or just | 
|   814     // a hash conflict. |   816     // a hash conflict. | 
|   815     EntryImpl* old_entry = MatchEntry(key, hash, false); |   817     EntryImpl* old_entry = MatchEntry(key, hash, false); | 
|   816     if (old_entry) |   818     if (old_entry) | 
|   817       return ResurrectEntry(old_entry); |   819       return ResurrectEntry(old_entry); | 
|   818  |   820  | 
| (...skipping 756 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1575         cache_entry = NULL; |  1577         cache_entry = NULL; | 
|  1576       } else { |  1578       } else { | 
|  1577         Trace("NewEntry failed on MatchEntry 0x%x", address.value()); |  1579         Trace("NewEntry failed on MatchEntry 0x%x", address.value()); | 
|  1578       } |  1580       } | 
|  1579  |  1581  | 
|  1580       // Restart the search. |  1582       // Restart the search. | 
|  1581       address.set_value(data_->table[hash & mask_]); |  1583       address.set_value(data_->table[hash & mask_]); | 
|  1582       continue; |  1584       continue; | 
|  1583     } |  1585     } | 
|  1584  |  1586  | 
 |  1587     DCHECK_EQ(hash & mask_, cache_entry->entry()->Data()->hash & mask_); | 
|  1585     if (cache_entry->IsSameEntry(key, hash)) { |  1588     if (cache_entry->IsSameEntry(key, hash)) { | 
|  1586       if (!cache_entry->Update()) |  1589       if (!cache_entry->Update()) | 
|  1587         cache_entry = NULL; |  1590         cache_entry = NULL; | 
|  1588       found = true; |  1591       found = true; | 
|  1589       break; |  1592       break; | 
|  1590     } |  1593     } | 
|  1591     if (!cache_entry->Update()) |  1594     if (!cache_entry->Update()) | 
|  1592       cache_entry = NULL; |  1595       cache_entry = NULL; | 
|  1593     parent_entry = cache_entry; |  1596     parent_entry = cache_entry; | 
|  1594     cache_entry = NULL; |  1597     cache_entry = NULL; | 
| (...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  2068     if (total_memory > kMaxBuffersSize || total_memory <= 0) |  2071     if (total_memory > kMaxBuffersSize || total_memory <= 0) | 
|  2069       total_memory = kMaxBuffersSize; |  2072       total_memory = kMaxBuffersSize; | 
|  2070  |  2073  | 
|  2071     done = true; |  2074     done = true; | 
|  2072   } |  2075   } | 
|  2073  |  2076  | 
|  2074   return static_cast<int>(total_memory); |  2077   return static_cast<int>(total_memory); | 
|  2075 } |  2078 } | 
|  2076  |  2079  | 
|  2077 }  // namespace disk_cache |  2080 }  // namespace disk_cache | 
| OLD | NEW |