| OLD | NEW |
| 1 /* | 1 /* |
| 2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) | 2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) |
| 3 Copyright (C) 2001 Dirk Mueller <mueller@kde.org> | 3 Copyright (C) 2001 Dirk Mueller <mueller@kde.org> |
| 4 Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. | 4 Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. |
| 5 | 5 |
| 6 This library is free software; you can redistribute it and/or | 6 This library is free software; you can redistribute it and/or |
| 7 modify it under the terms of the GNU Library General Public | 7 modify it under the terms of the GNU Library General Public |
| 8 License as published by the Free Software Foundation; either | 8 License as published by the Free Software Foundation; either |
| 9 version 2 of the License, or (at your option) any later version. | 9 version 2 of the License, or (at your option) any later version. |
| 10 | 10 |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 void prune(Resource* justReleasedResource = 0); | 190 void prune(Resource* justReleasedResource = 0); |
| 191 | 191 |
| 192 // Called to adjust a resource's size, lru list position, and access count. | 192 // Called to adjust a resource's size, lru list position, and access count. |
| 193 void update(Resource*, size_t oldSize, size_t newSize, bool wasAccessed = fa
lse); | 193 void update(Resource*, size_t oldSize, size_t newSize, bool wasAccessed = fa
lse); |
| 194 void updateForAccess(Resource* resource) { update(resource, resource->size()
, resource->size(), true); } | 194 void updateForAccess(Resource* resource) { update(resource, resource->size()
, resource->size(), true); } |
| 195 void updateDecodedResource(Resource*, UpdateReason, MemoryCacheLiveResourceP
riority = MemoryCacheLiveResourcePriorityUnknown); | 195 void updateDecodedResource(Resource*, UpdateReason, MemoryCacheLiveResourceP
riority = MemoryCacheLiveResourcePriorityUnknown); |
| 196 | 196 |
| 197 void makeLive(Resource*); | 197 void makeLive(Resource*); |
| 198 void makeDead(Resource*); | 198 void makeDead(Resource*); |
| 199 | 199 |
| 200 // This should be called when a Resource object is created. |
| 201 void registerLiveResource(Resource&); |
| 202 // This should be called when a Resource object becomes unnecesarry. |
| 203 void unregisterLiveResource(Resource&); |
| 204 |
| 200 static void removeURLFromCache(ExecutionContext*, const KURL&); | 205 static void removeURLFromCache(ExecutionContext*, const KURL&); |
| 201 | 206 |
| 202 Statistics getStatistics(); | 207 Statistics getStatistics(); |
| 203 | 208 |
| 204 size_t minDeadCapacity() const { return m_minDeadCapacity; } | 209 size_t minDeadCapacity() const { return m_minDeadCapacity; } |
| 205 size_t maxDeadCapacity() const { return m_maxDeadCapacity; } | 210 size_t maxDeadCapacity() const { return m_maxDeadCapacity; } |
| 206 size_t capacity() const { return m_capacity; } | 211 size_t capacity() const { return m_capacity; } |
| 207 size_t liveSize() const { return m_liveSize; } | 212 size_t liveSize() const { return m_liveSize; } |
| 208 size_t deadSize() const { return m_deadSize; } | 213 size_t deadSize() const { return m_deadSize; } |
| 209 | 214 |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 267 | 272 |
| 268 // Lists just for live resources with decoded data. Access to this list is b
ased off of painting the resource. | 273 // Lists just for live resources with decoded data. Access to this list is b
ased off of painting the resource. |
| 269 // The lists are ordered by decode priority, with higher indices having high
er priorities. | 274 // The lists are ordered by decode priority, with higher indices having high
er priorities. |
| 270 MemoryCacheLRUList m_liveDecodedResources[MemoryCacheLiveResourcePriorityHig
h + 1]; | 275 MemoryCacheLRUList m_liveDecodedResources[MemoryCacheLiveResourcePriorityHig
h + 1]; |
| 271 | 276 |
| 272 // A URL-based map of all resources that are in the cache (including the fre
shest version of objects that are currently being | 277 // A URL-based map of all resources that are in the cache (including the fre
shest version of objects that are currently being |
| 273 // referenced by a Web page). | 278 // referenced by a Web page). |
| 274 typedef WillBeHeapHashMap<String, OwnPtrWillBeMember<MemoryCacheEntry> > Res
ourceMap; | 279 typedef WillBeHeapHashMap<String, OwnPtrWillBeMember<MemoryCacheEntry> > Res
ourceMap; |
| 275 ResourceMap m_resources; | 280 ResourceMap m_resources; |
| 276 | 281 |
| 282 #if ENABLE(OILPAN) |
| 283 // Unlike m_allResources, m_liveResources is a set of Resource objects which |
| 284 // should not be deleted. m_allResources only contains on-cache Resource |
| 285 // objects. |
| 286 // FIXME: Can we remove manual lifetime management of Resource and this? |
| 287 HeapHashSet<Member<Resource> > m_liveResources; |
| 288 #endif |
| 289 |
| 277 friend class MemoryCacheTest; | 290 friend class MemoryCacheTest; |
| 278 #ifdef MEMORY_CACHE_STATS | 291 #ifdef MEMORY_CACHE_STATS |
| 279 Timer<MemoryCache> m_statsTimer; | 292 Timer<MemoryCache> m_statsTimer; |
| 280 #endif | 293 #endif |
| 281 }; | 294 }; |
| 282 | 295 |
| 283 // Returns the global cache. | 296 // Returns the global cache. |
| 284 MemoryCache* memoryCache(); | 297 MemoryCache* memoryCache(); |
| 285 | 298 |
| 286 // Sets the global cache, used to swap in a test instance. Returns the old | 299 // Sets the global cache, used to swap in a test instance. Returns the old |
| 287 // MemoryCache object. | 300 // MemoryCache object. |
| 288 PassOwnPtrWillBeRawPtr<MemoryCache> replaceMemoryCacheForTesting(PassOwnPtrWillB
eRawPtr<MemoryCache>); | 301 PassOwnPtrWillBeRawPtr<MemoryCache> replaceMemoryCacheForTesting(PassOwnPtrWillB
eRawPtr<MemoryCache>); |
| 289 | 302 |
| 290 } | 303 } |
| 291 | 304 |
| 292 #endif | 305 #endif |
| OLD | NEW |