Title: [282515] releases/WebKitGTK/webkit-2.32/Source/WebCore
Revision
282515
Author
[email protected]
Date
2021-09-16 02:07:19 -0700 (Thu, 16 Sep 2021)

Log Message

Merge r276696 - Use a WeakHashSet for Document::m_mediaElements
https://bugs.webkit.org/show_bug.cgi?id=225082

Patch by Ian Gilbert <[email protected]> on 2021-04-28
Reviewed by Ryosuke Niwa.

Refactoring to use weak pointer instead of raw pointer.
No observable change of behavior.

* dom/Document.cpp:
(WebCore::Document::registerMediaElement):
(WebCore::Document::unregisterMediaElement):
(WebCore::Document::forEachMediaElement):
* dom/Document.h:

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.32/Source/WebCore/ChangeLog (282514 => 282515)


--- releases/WebKitGTK/webkit-2.32/Source/WebCore/ChangeLog	2021-09-16 09:07:12 UTC (rev 282514)
+++ releases/WebKitGTK/webkit-2.32/Source/WebCore/ChangeLog	2021-09-16 09:07:19 UTC (rev 282515)
@@ -1,3 +1,19 @@
+2021-04-28  Ian Gilbert  <[email protected]>
+
+        Use a WeakHashSet for Document::m_mediaElements
+        https://bugs.webkit.org/show_bug.cgi?id=225082
+
+        Reviewed by Ryosuke Niwa.
+
+        Refactoring to use weak pointer instead of raw pointer.
+        No observable change of behavior.
+
+        * dom/Document.cpp:
+        (WebCore::Document::registerMediaElement):
+        (WebCore::Document::unregisterMediaElement):
+        (WebCore::Document::forEachMediaElement):
+        * dom/Document.h:
+
 2021-04-27  Frédéric Wang  <[email protected]>
 
         [MathML] Assertion failure in RenderTreeNeedsLayoutChecker

Modified: releases/WebKitGTK/webkit-2.32/Source/WebCore/dom/Document.cpp (282514 => 282515)


--- releases/WebKitGTK/webkit-2.32/Source/WebCore/dom/Document.cpp	2021-09-16 09:07:12 UTC (rev 282514)
+++ releases/WebKitGTK/webkit-2.32/Source/WebCore/dom/Document.cpp	2021-09-16 09:07:19 UTC (rev 282515)
@@ -1854,21 +1854,21 @@
 
 void Document::registerMediaElement(HTMLMediaElement& element)
 {
-    m_mediaElements.add(&element);
+    m_mediaElements.add(element);
 }
 
 void Document::unregisterMediaElement(HTMLMediaElement& element)
 {
-    m_mediaElements.remove(&element);
+    m_mediaElements.remove(element);
 }
 
 void Document::forEachMediaElement(const Function<void(HTMLMediaElement&)>& function)
 {
-    Vector<Ref<HTMLMediaElement>> elements;
-    for (auto* element : m_mediaElements)
-        elements.append(*element);
-    for (auto& element : elements)
+    ASSERT(!m_mediaElements.hasNullReferences());
+    m_mediaElements.forEach([&](auto& element) {
+        auto protectedElement = makeRef(element);
         function(element);
+    });
 }
 
 #endif

Modified: releases/WebKitGTK/webkit-2.32/Source/WebCore/dom/Document.h (282514 => 282515)


--- releases/WebKitGTK/webkit-2.32/Source/WebCore/dom/Document.h	2021-09-16 09:07:12 UTC (rev 282514)
+++ releases/WebKitGTK/webkit-2.32/Source/WebCore/dom/Document.h	2021-09-16 09:07:19 UTC (rev 282515)
@@ -1858,7 +1858,7 @@
     HashSet<Element*> m_documentSuspensionCallbackElements;
 
 #if ENABLE(VIDEO)
-    HashSet<HTMLMediaElement*> m_mediaElements;
+    WeakHashSet<HTMLMediaElement> m_mediaElements;
 #endif
 
 #if ENABLE(VIDEO)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to