Ignore:
Timestamp:
Feb 10, 2011, 6:10:16 PM (14 years ago)
Author:
[email protected]
Message:

2011-02-10 Michael Saboff <[email protected]>

Reviewed by Geoffrey Garen.

Cached JavaScript Parser Data Being Left in Memory Cache
https://bugs.webkit.org/show_bug.cgi?id=54245

Added clear method which removes SourceProviderCache items.
Cleaned up extraneous whitespace.

  • JavaScriptCore.exp:
  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
  • parser/SourceProviderCache.cpp: (JSC::SourceProviderCache::~SourceProviderCache): (JSC::SourceProviderCache::clear): (JSC::SourceProviderCache::byteSize): (JSC::SourceProviderCache::add):
  • parser/SourceProviderCache.h:

2011-02-10 Michael Saboff <[email protected]>

Reviewed by Geoffrey Garen.

Cached JavaScript Parser Data Being Left in Memory Cache
https://bugs.webkit.org/show_bug.cgi?id=54245

Added logic in CachedScript to clear SourceProviderCache data in
destroyDecodedData(). Added and changed CachedScript timeout to
act similar to CachedImage. Changed didAddClient to call super
class method instead of duplicating the logic in the derived
classes.

  • loader/cache/CachedImage.cpp: (WebCore::CachedImage::didAddClient):
  • loader/cache/CachedScript.cpp: (WebCore::CachedScript::didAddClient): (WebCore::CachedScript::allClientsRemoved): (WebCore::CachedScript::script): (WebCore::CachedScript::destroyDecodedData):
  • loader/cache/CachedScript.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/parser/SourceProviderCache.cpp

    r76611 r78297  
    3333SourceProviderCache::~SourceProviderCache()
    3434{
     35    clear();
     36}
     37
     38void SourceProviderCache::clear()
     39{
    3540    deleteAllValues(m_map);
     41    m_map.clear();
     42    m_contentByteSize = 0;
    3643}
    37    
     44
    3845unsigned SourceProviderCache::byteSize() const
    3946{
    40     return m_contentByteSize + sizeof(*this) + m_map.capacity() * sizeof(SourceProviderCacheItem*); 
     47    return m_contentByteSize + sizeof(*this) + m_map.capacity() * sizeof(SourceProviderCacheItem*);
    4148}
    42    
     49
    4350void SourceProviderCache::add(int sourcePosition, PassOwnPtr<SourceProviderCacheItem> item, unsigned size)
    4451{
    45     m_map.add(sourcePosition, item.leakPtr()); 
    46     m_contentByteSize += size; 
     52    m_map.add(sourcePosition, item.leakPtr());
     53    m_contentByteSize += size;
    4754}
    4855
Note: See TracChangeset for help on using the changeset viewer.