Changeset 78297 in webkit
- Timestamp:
- Feb 10, 2011 6:10:16 PM (13 years ago)
- Location:
- trunk/Source
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r78292 r78297 1 2011-02-10 Michael Saboff <msaboff@apple.com> 2 3 Reviewed by Geoffrey Garen. 4 5 Cached JavaScript Parser Data Being Left in Memory Cache 6 https://bugs.webkit.org/show_bug.cgi?id=54245 7 8 Added clear method which removes SourceProviderCache items. 9 Cleaned up extraneous whitespace. 10 11 * JavaScriptCore.exp: 12 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 13 * parser/SourceProviderCache.cpp: 14 (JSC::SourceProviderCache::~SourceProviderCache): 15 (JSC::SourceProviderCache::clear): 16 (JSC::SourceProviderCache::byteSize): 17 (JSC::SourceProviderCache::add): 18 * parser/SourceProviderCache.h: 19 1 20 2011-02-10 Joseph Pecoraro <joepeck@webkit.org> 2 21 -
trunk/Source/JavaScriptCore/JavaScriptCore.exp
r78042 r78297 191 191 __ZN3JSC18PropertyDescriptor9setGetterENS_7JSValueE 192 192 __ZN3JSC18PropertyDescriptor9setSetterENS_7JSValueE 193 __ZN3JSC19SourceProviderCache5clearEv 193 194 __ZN3JSC19SourceProviderCacheD1Ev 194 195 __ZN3JSC19initializeThreadingEv -
trunk/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def
r78042 r78297 83 83 ?classInfo@JSCell@JSC@@UBEPBUClassInfo@2@XZ 84 84 ?className@JSObject@JSC@@UBE?AVUString@2@XZ 85 ?clear@SourceProviderCache@JSC@@QAEXXZ 85 86 ?collate@Collator@WTF@@QBE?AW4Result@12@PB_WI0I@Z 86 87 ?collectAllGarbage@Heap@JSC@@QAEXXZ -
trunk/Source/JavaScriptCore/parser/SourceProviderCache.cpp
r76611 r78297 33 33 SourceProviderCache::~SourceProviderCache() 34 34 { 35 clear(); 36 } 37 38 void SourceProviderCache::clear() 39 { 35 40 deleteAllValues(m_map); 41 m_map.clear(); 42 m_contentByteSize = 0; 36 43 } 37 44 38 45 unsigned SourceProviderCache::byteSize() const 39 46 { 40 return m_contentByteSize + sizeof(*this) + m_map.capacity() * sizeof(SourceProviderCacheItem*); 47 return m_contentByteSize + sizeof(*this) + m_map.capacity() * sizeof(SourceProviderCacheItem*); 41 48 } 42 49 43 50 void SourceProviderCache::add(int sourcePosition, PassOwnPtr<SourceProviderCacheItem> item, unsigned size) 44 51 { 45 m_map.add(sourcePosition, item.leakPtr()); 46 m_contentByteSize += size; 52 m_map.add(sourcePosition, item.leakPtr()); 53 m_contentByteSize += size; 47 54 } 48 55 -
trunk/Source/JavaScriptCore/parser/SourceProviderCache.h
r76611 r78297 35 35 SourceProviderCache() : m_contentByteSize(0) {} 36 36 ~SourceProviderCache(); 37 37 38 void clear(); 38 39 unsigned byteSize() const; 39 40 void add(int sourcePosition, PassOwnPtr<SourceProviderCacheItem>, unsigned size); -
trunk/Source/WebCore/ChangeLog
r78293 r78297 1 2011-02-10 Michael Saboff <msaboff@apple.com> 2 3 Reviewed by Geoffrey Garen. 4 5 Cached JavaScript Parser Data Being Left in Memory Cache 6 https://bugs.webkit.org/show_bug.cgi?id=54245 7 8 Added logic in CachedScript to clear SourceProviderCache data in 9 destroyDecodedData(). Added and changed CachedScript timeout to 10 act similar to CachedImage. Changed didAddClient to call super 11 class method instead of duplicating the logic in the derived 12 classes. 13 14 * loader/cache/CachedImage.cpp: 15 (WebCore::CachedImage::didAddClient): 16 * loader/cache/CachedScript.cpp: 17 (WebCore::CachedScript::didAddClient): 18 (WebCore::CachedScript::allClientsRemoved): 19 (WebCore::CachedScript::script): 20 (WebCore::CachedScript::destroyDecodedData): 21 * loader/cache/CachedScript.h: 22 1 23 2011-02-10 Cosmin Truta <ctruta@chromium.org> 2 24 -
trunk/Source/WebCore/loader/cache/CachedImage.cpp
r75857 r78297 100 100 c->imageChanged(this); 101 101 102 if (!isLoading()) 103 c->notifyFinished(this); 102 CachedResource::didAddClient(c); 104 103 } 105 104 -
trunk/Source/WebCore/loader/cache/CachedScript.cpp
r76177 r78297 56 56 } 57 57 58 void CachedScript::didAddClient(CachedResourceClient* c) 59 { 60 if (m_decodedDataDeletionTimer.isActive()) 61 m_decodedDataDeletionTimer.stop(); 62 63 CachedResource::didAddClient(c); 64 } 65 58 66 void CachedScript::allClientsRemoved() 59 67 { 60 m_decodedDataDeletionTimer.startOneShot(0); 68 if (double interval = memoryCache()->deadDecodedDataDeletionInterval()) 69 m_decodedDataDeletionTimer.startOneShot(interval); 61 70 } 62 71 … … 80 89 setDecodedSize(m_script.length() * sizeof(UChar)); 81 90 } 82 m_decodedDataDeletionTimer.startOneShot(0);83 91 return m_script; 84 92 } … … 118 126 unsigned extraSize = 0; 119 127 #if USE(JSC) 120 // FIXME: SourceInfoCache should be wiped out too but not this easily. 128 if (m_sourceProviderCache) 129 m_sourceProviderCache->clear(); 130 121 131 extraSize = m_sourceProviderCache ? m_sourceProviderCache->byteSize() : 0; 122 132 #endif -
trunk/Source/WebCore/loader/cache/CachedScript.h
r78226 r78297 48 48 const String& script(); 49 49 50 virtual void didAddClient(CachedResourceClient*); 50 51 virtual void allClientsRemoved(); 51 52
Note: See TracChangeset
for help on using the changeset viewer.