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