Title: [220380] trunk/Source/WebCore
Revision
220380
Author
[email protected]
Date
2017-08-07 19:52:05 -0700 (Mon, 07 Aug 2017)

Log Message

Avoid a hash lookup in FilterInfo::remove()
https://bugs.webkit.org/show_bug.cgi?id=175301

Reviewed by Sam Weinig.

FilterInfo::remove() always called map().remove(&layer)), even when layer.m_hasFilterInfo
was false (and even asserted that layer.m_hasFilterInfo == map().contains(&layer)).

So we can early return if layer.m_hasFilterInfo is false.

* rendering/RenderLayerFilterInfo.cpp:
(WebCore::RenderLayer::FilterInfo::getIfExists):
(WebCore::RenderLayer::FilterInfo::remove):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (220379 => 220380)


--- trunk/Source/WebCore/ChangeLog	2017-08-08 02:46:11 UTC (rev 220379)
+++ trunk/Source/WebCore/ChangeLog	2017-08-08 02:52:05 UTC (rev 220380)
@@ -1,5 +1,21 @@
 2017-08-07  Simon Fraser  <[email protected]>
 
+        Avoid a hash lookup in FilterInfo::remove()
+        https://bugs.webkit.org/show_bug.cgi?id=175301
+
+        Reviewed by Sam Weinig.
+
+        FilterInfo::remove() always called map().remove(&layer)), even when layer.m_hasFilterInfo
+        was false (and even asserted that layer.m_hasFilterInfo == map().contains(&layer)).
+
+        So we can early return if layer.m_hasFilterInfo is false.
+
+        * rendering/RenderLayerFilterInfo.cpp:
+        (WebCore::RenderLayer::FilterInfo::getIfExists):
+        (WebCore::RenderLayer::FilterInfo::remove):
+
+2017-08-07  Simon Fraser  <[email protected]>
+
         Make TransformOperation::type() non-virtual
         https://bugs.webkit.org/show_bug.cgi?id=175297
 

Modified: trunk/Source/WebCore/rendering/RenderLayerFilterInfo.cpp (220379 => 220380)


--- trunk/Source/WebCore/rendering/RenderLayerFilterInfo.cpp	2017-08-08 02:46:11 UTC (rev 220379)
+++ trunk/Source/WebCore/rendering/RenderLayerFilterInfo.cpp	2017-08-08 02:52:05 UTC (rev 220380)
@@ -49,7 +49,7 @@
 {
     ASSERT(layer.m_hasFilterInfo == map().contains(&layer));
 
-    return layer.m_hasFilterInfo ? map().get(&layer) : 0;
+    return layer.m_hasFilterInfo ? map().get(&layer) : nullptr;
 }
 
 RenderLayer::FilterInfo& RenderLayer::FilterInfo::get(RenderLayer& layer)
@@ -67,9 +67,11 @@
 void RenderLayer::FilterInfo::remove(RenderLayer& layer)
 {
     ASSERT(layer.m_hasFilterInfo == map().contains(&layer));
+    if (!layer.m_hasFilterInfo)
+        return;
 
-    if (map().remove(&layer))
-        layer.m_hasFilterInfo = false;
+    map().remove(&layer);
+    layer.m_hasFilterInfo = false;
 }
 
 RenderLayer::FilterInfo::FilterInfo(RenderLayer& layer)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to