Index: Source/core/html/HTMLMediaElement.cpp |
diff --git a/Source/core/html/HTMLMediaElement.cpp b/Source/core/html/HTMLMediaElement.cpp |
index 380683b173f4715adebd76644a288b3f03b27a4b..79d74345237a69632a6e064c230892a2cc8a5870 100644 |
--- a/Source/core/html/HTMLMediaElement.cpp |
+++ b/Source/core/html/HTMLMediaElement.cpp |
@@ -325,12 +325,12 @@ HTMLMediaElement::~HTMLMediaElement() |
#if !ENABLE(OILPAN) |
if (m_textTracks) |
m_textTracks->clearOwner(); |
-#endif |
if (m_mediaController) { |
m_mediaController->removeMediaElement(this); |
m_mediaController = nullptr; |
} |
+#endif |
closeMediaSource(); |
@@ -3513,7 +3513,7 @@ MediaController* HTMLMediaElement::controller() const |
return m_mediaController.get(); |
} |
-void HTMLMediaElement::setController(PassRefPtr<MediaController> controller) |
+void HTMLMediaElement::setController(PassRefPtrWillBeRawPtr<MediaController> controller) |
{ |
// 4.8.10.11.2 Media controllers: controller attribute. |
// On setting, it must first remove the element's mediagroup attribute, if any, |
@@ -3522,7 +3522,7 @@ void HTMLMediaElement::setController(PassRefPtr<MediaController> controller) |
setControllerInternal(controller); |
} |
-void HTMLMediaElement::setControllerInternal(PassRefPtr<MediaController> controller) |
+void HTMLMediaElement::setControllerInternal(PassRefPtrWillBeRawPtr<MediaController> controller) |
{ |
if (m_mediaController) |
m_mediaController->removeMediaElement(this); |
@@ -3657,6 +3657,7 @@ void HTMLMediaElement::trace(Visitor* visitor) |
visitor->trace(m_nextChildNodeToConsider); |
visitor->trace(m_textTracks); |
visitor->trace(m_textTracksWhenResourceSelectionBegan); |
+ visitor->trace(m_mediaController); |
WillBeHeapSupplementable<HTMLMediaElement>::trace(visitor); |
HTMLElement::trace(visitor); |
} |