Log Message
Don't let the CSSValuePool's font family cache grow unbounded. <https://webkit.org/b/140894>
Reviewed by Chris Dumez. Darin pointed out to Chris who pointed out to me that the font family cache in CSSValuePool can grow unbounded until we get a system memory pressure notification. Put a limit on it like we did with the font face cache. * css/CSSValuePool.cpp: (WebCore::CSSValuePool::createFontFamilyValue):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (179140 => 179141)
--- trunk/Source/WebCore/ChangeLog 2015-01-26 21:29:59 UTC (rev 179140)
+++ trunk/Source/WebCore/ChangeLog 2015-01-26 21:42:40 UTC (rev 179141)
@@ -1,5 +1,19 @@
2015-01-26 Andreas Kling <[email protected]>
+ Don't let the CSSValuePool's font family cache grow unbounded.
+ <https://webkit.org/b/140894>
+
+ Reviewed by Chris Dumez.
+
+ Darin pointed out to Chris who pointed out to me that the font family cache
+ in CSSValuePool can grow unbounded until we get a system memory pressure
+ notification. Put a limit on it like we did with the font face cache.
+
+ * css/CSSValuePool.cpp:
+ (WebCore::CSSValuePool::createFontFamilyValue):
+
+2015-01-26 Andreas Kling <[email protected]>
+
Plug leak in jsValueWithDictionaryInContext().
<https://webkit.org/b/140889>
Modified: trunk/Source/WebCore/css/CSSValuePool.cpp (179140 => 179141)
--- trunk/Source/WebCore/css/CSSValuePool.cpp 2015-01-26 21:29:59 UTC (rev 179140)
+++ trunk/Source/WebCore/css/CSSValuePool.cpp 2015-01-26 21:42:40 UTC (rev 179141)
@@ -121,6 +121,11 @@
Ref<CSSPrimitiveValue> CSSValuePool::createFontFamilyValue(const String& familyName, FromSystemFontIDOrNot fromSystemFontID)
{
+ // Remove one entry at random if the cache grows too large.
+ const int maximumFontFamilyCacheSize = 128;
+ if (m_fontFamilyValueCache.size() >= maximumFontFamilyCacheSize)
+ m_fontFamilyValueCache.remove(m_fontFamilyValueCache.begin());
+
RefPtr<CSSPrimitiveValue>& value = m_fontFamilyValueCache.add({familyName, fromSystemFontID}, nullptr).iterator->value;
if (!value)
value = CSSPrimitiveValue::create(CSSFontFamily{familyName, fromSystemFontID});
_______________________________________________ webkit-changes mailing list [email protected] https://lists.webkit.org/mailman/listinfo/webkit-changes
