Title: [226488] trunk/Source/WebCore
Revision
226488
Author
an...@apple.com
Date
2018-01-06 13:01:19 -0800 (Sat, 06 Jan 2018)

Log Message

Use WeakPtr for RenderTreePosition::m_nextSibling
https://bugs.webkit.org/show_bug.cgi?id=181363

Reviewed by Zalan Bujtas.

For safety. In most cases it is null and won't cause us to instantiate WeakReferences for
many new objects.

* rendering/updating/RenderTreePosition.cpp:
(WebCore::RenderTreePosition::computeNextSibling):
* rendering/updating/RenderTreePosition.h:
(WebCore::RenderTreePosition::RenderTreePosition):
(WebCore::RenderTreePosition::nextSibling const):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (226487 => 226488)


--- trunk/Source/WebCore/ChangeLog	2018-01-06 16:52:30 UTC (rev 226487)
+++ trunk/Source/WebCore/ChangeLog	2018-01-06 21:01:19 UTC (rev 226488)
@@ -1,3 +1,19 @@
+2018-01-06  Antti Koivisto  <an...@apple.com>
+
+        Use WeakPtr for RenderTreePosition::m_nextSibling
+        https://bugs.webkit.org/show_bug.cgi?id=181363
+
+        Reviewed by Zalan Bujtas.
+
+        For safety. In most cases it is null and won't cause us to instantiate WeakReferences for
+        many new objects.
+
+        * rendering/updating/RenderTreePosition.cpp:
+        (WebCore::RenderTreePosition::computeNextSibling):
+        * rendering/updating/RenderTreePosition.h:
+        (WebCore::RenderTreePosition::RenderTreePosition):
+        (WebCore::RenderTreePosition::nextSibling const):
+
 2018-01-05  David Kilzer  <ddkil...@apple.com>
 
         Re-enable -Wcast-qual in WebCore for Apple ports

Modified: trunk/Source/WebCore/rendering/updating/RenderTreePosition.cpp (226487 => 226488)


--- trunk/Source/WebCore/rendering/updating/RenderTreePosition.cpp	2018-01-06 16:52:30 UTC (rev 226487)
+++ trunk/Source/WebCore/rendering/updating/RenderTreePosition.cpp	2018-01-06 21:01:19 UTC (rev 226488)
@@ -45,7 +45,7 @@
 #endif
         return;
     }
-    m_nextSibling = nextSiblingRenderer(node);
+    m_nextSibling = makeWeakPtr(nextSiblingRenderer(node));
     m_hasValidNextSibling = true;
 }
 

Modified: trunk/Source/WebCore/rendering/updating/RenderTreePosition.h (226487 => 226488)


--- trunk/Source/WebCore/rendering/updating/RenderTreePosition.h	2018-01-06 16:52:30 UTC (rev 226487)
+++ trunk/Source/WebCore/rendering/updating/RenderTreePosition.h	2018-01-06 21:01:19 UTC (rev 226488)
@@ -40,13 +40,13 @@
     }
     RenderTreePosition(RenderElement& parent, RenderObject* nextSibling)
         : m_parent(parent)
-        , m_nextSibling(nextSibling)
+        , m_nextSibling(makeWeakPtr(nextSibling))
         , m_hasValidNextSibling(true)
     {
     }
 
     RenderElement& parent() const { return m_parent; }
-    RenderObject* nextSibling() const { ASSERT(m_hasValidNextSibling); return m_nextSibling; }
+    RenderObject* nextSibling() const { ASSERT(m_hasValidNextSibling); return m_nextSibling.get(); }
 
     void computeNextSibling(const Node&);
     void moveToLastChild();
@@ -57,7 +57,7 @@
 
 private:
     RenderElement& m_parent;
-    RenderObject* m_nextSibling { nullptr };
+    WeakPtr<RenderObject> m_nextSibling { nullptr };
     bool m_hasValidNextSibling { false };
 #if !ASSERT_DISABLED
     unsigned m_assertionLimitCounter { 0 };
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to