| Index: Source/core/fetch/MemoryCache.h
|
| diff --git a/Source/core/fetch/MemoryCache.h b/Source/core/fetch/MemoryCache.h
|
| index 0030afe17d6afcf6b0e42f1131777aef68653b8d..749bb6699a3d6d7b274542779fd25e0b79d2f9eb 100644
|
| --- a/Source/core/fetch/MemoryCache.h
|
| +++ b/Source/core/fetch/MemoryCache.h
|
| @@ -72,6 +72,7 @@ public:
|
|
|
| ResourcePtr<Resource> m_resource;
|
| bool m_inLiveDecodedResourcesList;
|
| + unsigned m_accessCount;
|
|
|
| MemoryCacheEntry* m_previousInLiveResourcesList;
|
| MemoryCacheEntry* m_nextInLiveResourcesList;
|
| @@ -82,6 +83,7 @@ public:
|
| MemoryCacheEntry(Resource* resource)
|
| : m_resource(resource)
|
| , m_inLiveDecodedResourcesList(false)
|
| + , m_accessCount(0)
|
| , m_previousInLiveResourcesList(0)
|
| , m_nextInLiveResourcesList(0)
|
| , m_previousInAllResourcesList(0)
|
| @@ -135,6 +137,7 @@ public:
|
| void add(Resource*);
|
| void replace(Resource* newResource, Resource* oldResource);
|
| void remove(Resource* resource) { evict(resource); }
|
| + bool contains(Resource*);
|
|
|
| static KURL removeFragmentIdentifierIfNeeded(const KURL& originalURL);
|
|
|
| @@ -151,12 +154,9 @@ public:
|
|
|
| void prune(Resource* justReleasedResource = 0);
|
|
|
| - // Calls to put the cached resource into and out of LRU lists.
|
| - void insertInLRUList(Resource*);
|
| - void removeFromLRUList(Resource*);
|
| -
|
| - // Called to adjust the cache totals when a resource changes size.
|
| - void adjustSize(bool live, ptrdiff_t delta);
|
| + // Called to adjust a resource's size, lru list position, and access count.
|
| + void update(Resource*, size_t oldSize, size_t newSize, bool wasAccessed = false);
|
| + void updateForAccess(Resource* resource) { update(resource, resource->size(), resource->size(), true); }
|
|
|
| // Track decoded resources that are in the cache and referenced by a Web page.
|
| void insertInLiveDecodedResourcesList(Resource*);
|
| @@ -181,13 +181,17 @@ public:
|
| virtual void didProcessTask() OVERRIDE;
|
|
|
| private:
|
| - LRUList* lruListFor(MemoryCacheEntry*);
|
| + LRUList* lruListFor(unsigned accessCount, size_t);
|
|
|
| #ifdef MEMORY_CACHE_STATS
|
| void dumpStats(Timer<MemoryCache>*);
|
| void dumpLRULists(bool includeLive) const;
|
| #endif
|
|
|
| + // Calls to put the cached resource into and out of LRU lists.
|
| + void insertInLRUList(MemoryCacheEntry*, LRUList*);
|
| + void removeFromLRUList(MemoryCacheEntry*, LRUList*);
|
| +
|
| size_t liveCapacity() const;
|
| size_t deadCapacity() const;
|
|
|
|
|