Title: [277189] branches/safari-611-branch/Source/WebCore
- Revision
- 277189
- Author
- repst...@apple.com
- Date
- 2021-05-07 11:48:21 -0700 (Fri, 07 May 2021)
Log Message
Cherry-pick r276696. rdar://problem/77581076
Use a WeakHashSet for Document::m_mediaElements
https://bugs.webkit.org/show_bug.cgi?id=225082
Patch by Ian Gilbert <i...@apple.com> 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:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276696 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Modified Paths
Diff
Modified: branches/safari-611-branch/Source/WebCore/ChangeLog (277188 => 277189)
--- branches/safari-611-branch/Source/WebCore/ChangeLog 2021-05-07 18:48:17 UTC (rev 277188)
+++ branches/safari-611-branch/Source/WebCore/ChangeLog 2021-05-07 18:48:21 UTC (rev 277189)
@@ -1,5 +1,42 @@
2021-05-06 Russell Epstein <repst...@apple.com>
+ Cherry-pick r276696. rdar://problem/77581076
+
+ Use a WeakHashSet for Document::m_mediaElements
+ https://bugs.webkit.org/show_bug.cgi?id=225082
+
+ Patch by Ian Gilbert <i...@apple.com> 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:
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276696 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 2021-04-28 Ian Gilbert <i...@apple.com>
+
+ 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-05-06 Russell Epstein <repst...@apple.com>
+
Cherry-pick r276630. rdar://problem/77581089
[MathML] Assertion failure in RenderTreeNeedsLayoutChecker
Modified: branches/safari-611-branch/Source/WebCore/dom/Document.cpp (277188 => 277189)
--- branches/safari-611-branch/Source/WebCore/dom/Document.cpp 2021-05-07 18:48:17 UTC (rev 277188)
+++ branches/safari-611-branch/Source/WebCore/dom/Document.cpp 2021-05-07 18:48:21 UTC (rev 277189)
@@ -1850,21 +1850,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);
+ });
}
bool Document::mediaPlaybackExists()
Modified: branches/safari-611-branch/Source/WebCore/dom/Document.h (277188 => 277189)
--- branches/safari-611-branch/Source/WebCore/dom/Document.h 2021-05-07 18:48:17 UTC (rev 277188)
+++ branches/safari-611-branch/Source/WebCore/dom/Document.h 2021-05-07 18:48:21 UTC (rev 277189)
@@ -1863,7 +1863,7 @@
HashSet<Element*> m_documentSuspensionCallbackElements;
#if ENABLE(VIDEO)
- HashSet<HTMLMediaElement*> m_mediaElements;
+ WeakHashSet<HTMLMediaElement> m_mediaElements;
#endif
#if ENABLE(VIDEO)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes