Title: [96203] trunk/Source/WebCore
Revision
96203
Author
[email protected]
Date
2011-09-28 01:06:48 -0700 (Wed, 28 Sep 2011)

Log Message

Fix potential SVG performance regression (over-invalidation of caches) from 96052
https://bugs.webkit.org/show_bug.cgi?id=68941
<rdar://problem/10196224>

Reviewed by Zoltan Herczeg.

Only invalidate the cache of a filter when target style changes, as of the different types of cached
resources, only filters make use of the style of the target element and thus need to be invalidated
when the target style changes.

No new tests, performance improvement.

* rendering/svg/SVGResourcesCache.cpp:
(WebCore::SVGResourcesCache::clientUpdatedFromElement):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (96202 => 96203)


--- trunk/Source/WebCore/ChangeLog	2011-09-28 08:02:15 UTC (rev 96202)
+++ trunk/Source/WebCore/ChangeLog	2011-09-28 08:06:48 UTC (rev 96203)
@@ -1,3 +1,20 @@
+2011-09-28  Tim Horton  <[email protected]>
+
+        Fix potential SVG performance regression (over-invalidation of caches) from 96052
+        https://bugs.webkit.org/show_bug.cgi?id=68941
+        <rdar://problem/10196224>
+
+        Reviewed by Zoltan Herczeg.
+
+        Only invalidate the cache of a filter when target style changes, as of the different types of cached
+        resources, only filters make use of the style of the target element and thus need to be invalidated
+        when the target style changes.
+
+        No new tests, performance improvement.
+
+        * rendering/svg/SVGResourcesCache.cpp:
+        (WebCore::SVGResourcesCache::clientUpdatedFromElement):
+
 2011-09-28  Adenilson Cavalcanti  <[email protected]>
 
         Missing initialization of member in ImageFrameQt class

Modified: trunk/Source/WebCore/rendering/svg/SVGResourcesCache.cpp (96202 => 96203)


--- trunk/Source/WebCore/rendering/svg/SVGResourcesCache.cpp	2011-09-28 08:02:15 UTC (rev 96202)
+++ trunk/Source/WebCore/rendering/svg/SVGResourcesCache.cpp	2011-09-28 08:06:48 UTC (rev 96203)
@@ -146,10 +146,8 @@
     cache->addResourcesFromRenderObject(renderer, newStyle);
 
     SVGResources* resources = SVGResourcesCache::cachedResourcesForRenderObject(renderer);
-    if (!resources)
-        return;
-
-    resources->removeClientFromCache(renderer);
+    if (resources && resources->filter())
+        resources->removeClientFromCache(renderer);
 }
 
 void SVGResourcesCache::clientDestroyed(RenderObject* renderer)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to