diff options
| author | Ben Murdoch <benm@google.com> | 2011-05-16 16:25:10 +0100 |
|---|---|---|
| committer | Ben Murdoch <benm@google.com> | 2011-05-23 18:54:14 +0100 |
| commit | ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddb (patch) | |
| tree | db769fadd053248f85db67434a5b275224defef7 /Source/WebCore/loader/cache | |
| parent | 52e2557aeb8477967e97fd24f20f8f407a10fa15 (diff) | |
| download | external_webkit-ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddb.zip external_webkit-ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddb.tar.gz external_webkit-ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddb.tar.bz2 | |
Merge WebKit at r76408: Initial merge by git.
Change-Id: I5b91decbd693ccbf5c1b8354b37cd68cc9a1ea53
Diffstat (limited to 'Source/WebCore/loader/cache')
| -rw-r--r-- | Source/WebCore/loader/cache/CachedResource.h | 3 | ||||
| -rw-r--r-- | Source/WebCore/loader/cache/CachedResourceClient.h | 4 | ||||
| -rw-r--r-- | Source/WebCore/loader/cache/CachedResourceLoader.h | 3 | ||||
| -rw-r--r-- | Source/WebCore/loader/cache/CachedScript.cpp | 25 | ||||
| -rw-r--r-- | Source/WebCore/loader/cache/CachedScript.h | 15 | ||||
| -rw-r--r-- | Source/WebCore/loader/cache/MemoryCache.h | 3 |
6 files changed, 46 insertions, 7 deletions
diff --git a/Source/WebCore/loader/cache/CachedResource.h b/Source/WebCore/loader/cache/CachedResource.h index 3600a02..5c8b38f 100644 --- a/Source/WebCore/loader/cache/CachedResource.h +++ b/Source/WebCore/loader/cache/CachedResource.h @@ -50,7 +50,8 @@ class PurgeableBuffer; // A resource that is held in the cache. Classes who want to use this object should derive // from CachedResourceClient, to get the function calls in case the requested data has arrived. // This class also does the actual communication with the loader to obtain the resource from the network. -class CachedResource : public Noncopyable { +class CachedResource { + WTF_MAKE_NONCOPYABLE(CachedResource); WTF_MAKE_FAST_ALLOCATED; friend class MemoryCache; friend class InspectorResource; diff --git a/Source/WebCore/loader/cache/CachedResourceClient.h b/Source/WebCore/loader/cache/CachedResourceClient.h index 275d331..1c56f13 100644 --- a/Source/WebCore/loader/cache/CachedResourceClient.h +++ b/Source/WebCore/loader/cache/CachedResourceClient.h @@ -45,8 +45,8 @@ namespace WebCore { * inherit from this class and overload one of the 3 functions * */ - class CachedResourceClient : public FastAllocBase - { + class CachedResourceClient { + WTF_MAKE_FAST_ALLOCATED; public: virtual ~CachedResourceClient() { } diff --git a/Source/WebCore/loader/cache/CachedResourceLoader.h b/Source/WebCore/loader/cache/CachedResourceLoader.h index bc351ce..4f67e72 100644 --- a/Source/WebCore/loader/cache/CachedResourceLoader.h +++ b/Source/WebCore/loader/cache/CachedResourceLoader.h @@ -49,7 +49,8 @@ class ImageLoader; class KURL; // The CachedResourceLoader manages the loading of scripts/images/stylesheets for a single document. -class CachedResourceLoader : public Noncopyable { +class CachedResourceLoader { + WTF_MAKE_NONCOPYABLE(CachedResourceLoader); WTF_MAKE_FAST_ALLOCATED; friend class ImageLoader; public: diff --git a/Source/WebCore/loader/cache/CachedScript.cpp b/Source/WebCore/loader/cache/CachedScript.cpp index 54b4503..8950ddb 100644 --- a/Source/WebCore/loader/cache/CachedScript.cpp +++ b/Source/WebCore/loader/cache/CachedScript.cpp @@ -34,6 +34,10 @@ #include "TextResourceDecoder.h" #include <wtf/Vector.h> +#if USE(JSC) +#include <parser/SourceProvider.h> +#endif + namespace WebCore { CachedScript::CachedScript(const String& url, const String& charset) @@ -111,7 +115,12 @@ void CachedScript::error(CachedResource::Status status) void CachedScript::destroyDecodedData() { m_script = String(); - setDecodedSize(0); + unsigned extraSize = 0; +#if USE(JSC) + // FIXME: SourceInfoCache should be wiped out too but not this easily. + extraSize = m_sourceProviderCache ? m_sourceProviderCache->byteSize() : 0; +#endif + setDecodedSize(extraSize); if (!MemoryCache::shouldMakeResourcePurgeableOnEviction() && isSafeToMakePurgeable()) makePurgeable(true); } @@ -121,4 +130,18 @@ void CachedScript::decodedDataDeletionTimerFired(Timer<CachedScript>*) destroyDecodedData(); } +#if USE(JSC) +JSC::SourceProviderCache* CachedScript::sourceProviderCache() const +{ + if (!m_sourceProviderCache) + m_sourceProviderCache = adoptPtr(new JSC::SourceProviderCache); + return m_sourceProviderCache.get(); +} + +void CachedScript::sourceProviderCacheSizeChanged(int delta) +{ + setDecodedSize(decodedSize() + delta); +} +#endif + } // namespace WebCore diff --git a/Source/WebCore/loader/cache/CachedScript.h b/Source/WebCore/loader/cache/CachedScript.h index 30fcb1e..14294f2 100644 --- a/Source/WebCore/loader/cache/CachedScript.h +++ b/Source/WebCore/loader/cache/CachedScript.h @@ -29,6 +29,12 @@ #include "CachedResource.h" #include "Timer.h" +#if USE(JSC) +namespace JSC { + class SourceProviderCache; +} +#endif + namespace WebCore { class CachedResourceLoader; @@ -51,7 +57,11 @@ namespace WebCore { void checkNotify(); virtual void destroyDecodedData(); - +#if USE(JSC) + // Allows JSC to cache additional information about the source. + JSC::SourceProviderCache* sourceProviderCache() const; + void sourceProviderCacheSizeChanged(int delta); +#endif private: void decodedDataDeletionTimerFired(Timer<CachedScript>*); virtual PurgePriority purgePriority() const { return PurgeLast; } @@ -59,6 +69,9 @@ namespace WebCore { String m_script; RefPtr<TextResourceDecoder> m_decoder; Timer<CachedScript> m_decodedDataDeletionTimer; +#if USE(JSC) + mutable OwnPtr<JSC::SourceProviderCache> m_sourceProviderCache; +#endif }; } diff --git a/Source/WebCore/loader/cache/MemoryCache.h b/Source/WebCore/loader/cache/MemoryCache.h index 7a567ea..12452c1 100644 --- a/Source/WebCore/loader/cache/MemoryCache.h +++ b/Source/WebCore/loader/cache/MemoryCache.h @@ -70,7 +70,8 @@ class KURL; // its member variables) are allocated in non-purgeable TC-malloc'd memory so we would see slightly // more memory use due to this. -class MemoryCache : public Noncopyable { +class MemoryCache { + WTF_MAKE_NONCOPYABLE(MemoryCache); WTF_MAKE_FAST_ALLOCATED; public: friend MemoryCache* memoryCache(); |
