Title: [112497] trunk/Source/WebCore
- Revision
- 112497
- Author
- [email protected]
- Date
- 2012-03-28 20:42:48 -0700 (Wed, 28 Mar 2012)
Log Message
[CSS Filters] Avoid rebuilding FEFilters when RenderLayer is destroyed
https://bugs.webkit.org/show_bug.cgi?id=82524
Reviewed by Dean Jackson.
RenderLayer::~RenderLayer is calling clearBacking which updated the m_filter with new filters,
even though they were to be deleted a couple of lines below. This change avoids updating the filters,
if we are in the "destroyed" state.
No new tests. This change has no visible results to HTML or _javascript_, so it cannot be tested without a debugger.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::~RenderLayer):
(WebCore::RenderLayer::clearBacking):
* rendering/RenderLayer.h:
(RenderLayer):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (112496 => 112497)
--- trunk/Source/WebCore/ChangeLog 2012-03-29 03:00:19 UTC (rev 112496)
+++ trunk/Source/WebCore/ChangeLog 2012-03-29 03:42:48 UTC (rev 112497)
@@ -1,3 +1,22 @@
+2012-03-28 Alexandru Chiculita <[email protected]>
+
+ [CSS Filters] Avoid rebuilding FEFilters when RenderLayer is destroyed
+ https://bugs.webkit.org/show_bug.cgi?id=82524
+
+ Reviewed by Dean Jackson.
+
+ RenderLayer::~RenderLayer is calling clearBacking which updated the m_filter with new filters,
+ even though they were to be deleted a couple of lines below. This change avoids updating the filters,
+ if we are in the "destroyed" state.
+
+ No new tests. This change has no visible results to HTML or _javascript_, so it cannot be tested without a debugger.
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::~RenderLayer):
+ (WebCore::RenderLayer::clearBacking):
+ * rendering/RenderLayer.h:
+ (RenderLayer):
+
2012-03-28 Gyuyoung Kim <[email protected]>
Remove ScriptExecutionContext from NavigatorBattery.idl
Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (112496 => 112497)
--- trunk/Source/WebCore/rendering/RenderLayer.cpp 2012-03-29 03:00:19 UTC (rev 112496)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp 2012-03-29 03:42:48 UTC (rev 112497)
@@ -223,7 +223,7 @@
delete m_marquee;
#if USE(ACCELERATED_COMPOSITING)
- clearBacking();
+ clearBacking(true);
#endif
// Make sure we have no lingering clip rects.
@@ -3984,16 +3984,18 @@
return m_backing.get();
}
-void RenderLayer::clearBacking()
+void RenderLayer::clearBacking(bool layerBeingDestroyed)
{
if (m_backing && !renderer()->documentBeingDestroyed())
compositor()->layerBecameNonComposited(this);
m_backing.clear();
#if ENABLE(CSS_FILTERS)
- updateOrRemoveFilterEffect();
+ if (!layerBeingDestroyed)
+ updateOrRemoveFilterEffect();
+#else
+ UNUSED_PARAM(layerBeingDestroyed);
#endif
-
}
bool RenderLayer::hasCompositedMask() const
Modified: trunk/Source/WebCore/rendering/RenderLayer.h (112496 => 112497)
--- trunk/Source/WebCore/rendering/RenderLayer.h 2012-03-29 03:00:19 UTC (rev 112496)
+++ trunk/Source/WebCore/rendering/RenderLayer.h 2012-03-29 03:42:48 UTC (rev 112497)
@@ -540,7 +540,7 @@
bool hasCompositedMask() const;
RenderLayerBacking* backing() const { return m_backing.get(); }
RenderLayerBacking* ensureBacking();
- void clearBacking();
+ void clearBacking(bool layerBeingDestroyed = false);
virtual GraphicsLayer* layerForHorizontalScrollbar() const;
virtual GraphicsLayer* layerForVerticalScrollbar() const;
virtual GraphicsLayer* layerForScrollCorner() const;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes